Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Применяйте детализированные элементы управления доступом к данным с помощью AWS Lake Formation и Amazon EMR от Amazon SageMaker Studio.

Студия Amazon SageMaker — это полностью интегрированная среда разработки (IDE) для машинного обучения (ML), которая позволяет специалистам по данным и разработчикам выполнять все этапы рабочего процесса ML, от подготовки данных до создания, обучения, настройки и развертывания моделей. Studio имеет встроенную интеграцию с Amazon EMR. чтобы специалисты по данным могли интерактивно подготавливать данные в петабайтном масштабе, используя платформы с открытым исходным кодом, такие как Apache Spark, Hive и 300 Presto, прямо из записных книжек Studio. Данные часто хранятся в озерах данных, управляемых Формирование озера AWS, что позволяет применять детальное управление доступом с помощью простого механизма предоставления или отзыва. Мы рады сообщить, что Studio теперь поддерживает применение этого детального контроля доступа к данным с помощью Lake Formation при доступе к данным через Амазонка ЭМИ.

До сих пор, когда вы запускали несколько заданий по обработке данных в кластере EMR, все задания использовали один и тот же Управление идентификацией и доступом AWS (Я) роль для доступа к данным, а именно к кластеру Эластичное вычислительное облако Amazon (Amazon EC2) профиль экземпляра. Таким образом, для запуска заданий, которым требовался доступ к различным источникам данных, таким как разные Простой сервис хранения Amazon (Amazon S3), вам нужно было настроить профиль экземпляра EC2 с политиками, которые разрешали доступ к объединению всех таких источников данных. Кроме того, для включения групп пользователей с разным доступом к данным приходилось создавать несколько отдельных кластеров, по одному для каждой группы, что приводило к дополнительным операционным затратам. Кроме того, задания, отправленные в Amazon EMR из ноутбуков Studio, не могли применить детальное управление доступом к данным с помощью Lake Formation.

Начиная с версии Amazon EMR 6.9, при подключении к кластерам EMR из ноутбуков Studio вы можете визуально просматривать и выбирать роль IAM «на лету», которая называется роль IAM во время выполнения. Впоследствии все ваши задания Apache Spark, Apache Hive или Presto, созданные из записных книжек Studio, будут иметь доступ только к данным и ресурсам, разрешенным политиками, прикрепленными к роли среды выполнения. Кроме того, при доступе к данным из озер данных, управляемых с помощью Lake Formation, вы можете обеспечить доступ на уровне таблиц и столбцов с помощью политик, прикрепленных к роли среды выполнения.

Благодаря этой новой возможности несколько пользователей Studio могут подключаться к одному и тому же кластеру EMR, каждый из которых использует роль IAM во время выполнения с разрешениями, соответствующими их индивидуальному уровню доступа к данным. Их пользовательские сеансы также полностью изолированы друг от друга в общем кластере. Благодаря этой возможности управлять точным доступом к данным в одном и том же общем кластере вы можете упростить инициализацию кластеров EMR, тем самым снижая операционные накладные расходы и экономя расходы.

В этом посте мы покажем, как использовать Студийный блокнот для подключения к кластеру EMR с помощью ролей времени выполнения. Мы предоставляем образец конфигурации жизненного цикла Studio, который поможет настроить роли среды выполнения EMR, к которым имеет доступ профиль пользователя Studio. Кроме того, мы управляем доступом к данным в озере данных через Lake Formation, применяя разрешения на уровне строк и столбцов для ролей среды выполнения EMR.

Обзор решения

Мы демонстрируем это решение на сквозном варианте использования, используя образец набора данных, Модель данных TPC. Эти данные представляют собой данные о транзакциях для продуктов и включают в себя такую ​​информацию, как демографические данные клиентов, запасы, интернет-продажи и рекламные акции. Чтобы продемонстрировать детализированные разрешения на доступ к данным, мы рассмотрим следующих двух пользователей:

  • Дэвид, специалист по данным в маркетинговой команде. Ему поручено построить модель сегментации клиентов, и ему разрешен доступ только к неконфиденциальным данным клиентов.
  • Тина, специалист по данным в отделе продаж. Ей поручено построить модель прогноза продаж, и ей нужен доступ к данным о продажах для конкретного региона. Она также помогает команде разработчиков с инновациями, поэтому ей также нужен доступ к данным о продуктах.

Архитектура реализована следующим образом:

  • Lake Formation управляет озером данных, а необработанные данные доступны в корзинах S3.
  • Amazon EMR используется для запроса данных из озера данных и выполнения подготовки данных с помощью Spark.
  • Роли IAM используются для управления доступом к данным с помощью Lake Formation.
  • Студия используется как единый визуальный интерфейс для интерактивного запроса и подготовки данных.

Следующая диаграмма иллюстрирует эту архитектуру.

В следующих разделах описаны шаги, необходимые для включения ролей IAM во время выполнения для интеграции Amazon EMR с существующим доменом Studio. Вы можете воспользоваться предоставленным AWS CloudFormation складывать в Разверните решение ниже, чтобы настроить архитектурные компоненты для этого решения.

Предпосылки

Перед тем как начать, убедитесь, что у вас есть следующие предпосылки:

Настройте Amazon EMR с ролями среды выполнения

Кластер EMR должен быть создан с включенными ролями времени выполнения IAM. Дополнительные сведения об использовании ролей среды выполнения с Amazon EMR см. Настройка ролей среды выполнения для шагов Amazon EMR. Связывание ролей среды выполнения с кластерами EMR поддерживается в Amazon EMR 6.9. Убедитесь, что установлена ​​следующая конфигурация:

  • Политика доверия роли среды выполнения EMR должна позволять профилю экземпляра EMR EC2 принимать роль
  • Роль профиля экземпляра EMR EC2 должна иметь возможность принимать роли среды выполнения EMR.
  • Кластер EMR должен быть создан с шифрованием в пути.

При желании вы можете пройти SourceIdentity (имя профиля пользователя Studio) для мониторинга доступа к пользовательскому ресурсу. Следуйте шагам, описанным в Мониторинг доступа пользователей к ресурсам из Amazon SageMaker Studio включить SourceIdentity для вашего домена Studio.

Наконец, обратитесь к Подготовка данных с помощью Amazon EMR подробные инструкции по настройке и подключению к сети по интеграции Studio с кластерами EMR.

Создайте действие начальной загрузки для кластера

Вам необходимо запустить действие начальной загрузки в кластере, чтобы обеспечить подключение записной книжки Studio к EMR через роли среды выполнения. Выполните следующие шаги:

  1. Скачайте загрузочный скрипт с s3://emr-data-access-control-/customer-bootstrap-actions/gcsc/replace-rpms.sh, заменив регион на ваш регион
  2. Загрузите этот RPM-файл с s3://emr-data-access-control-/customer-bootstrap-actions/gcsc/emr-secret-agent-1.18.0-SNAPSHOT20221121212949.noarch.rpm
  3. Загрузите оба файла в корзину S3 в своей учетной записи и регионе.
  4. При создании кластера EMR включите следующее действие начальной загрузки:
    --bootstrap-actions "Path=,Args=[]"

Обновите роль выполнения Studio

Роль выполнения пользователя Studio необходимо обновить, чтобы разрешить GetClusterSessionCredentials Действие API. Добавьте следующую политику в роль выполнения Studio, заменив ресурс на ARN кластера, к которому вы хотите разрешить своим пользователям подключаться:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowEMRRuntimeRole",
            "Effect": "Allow", 
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": [
"arn:aws:elasticmapreduce:::cluster/"
],
            "Condition": {
                "StringLike": {
                    "elasticmapreduce:ExecutionRoleArn": [
                        "arn:aws:iam:::role/"
                    ]
                }
            }
        }
    ]
}

Вы также можете использовать Условия для управления тем, какие роли исполнения EMR могут использоваться исполнительной ролью Studio.

Кроме того, вы можете прикрепить роль, как показано ниже, которая ограничивает доступ к кластерам на основе тегов ресурсов. Это позволяет управлять доступом на основе тегов, и вы можете использовать одни и те же инструкции политики для ролей пользователей вместо явного добавления кластерных ARN.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowEMRRuntimeRole",
            "Effect": "Allow", 
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": “*”,
            "Condition": {
                "StringEquals": {
                    "elasticmapreduce:ResourceTag/": ""
                }
            }
        }
    ]
}

Настройка ролевых конфигураций через Studio LCC

По умолчанию пользовательский интерфейс Studio использует роль выполнения Studio для подключения к кластеру EMR. Если ваш пользователь может получить доступ к нескольким ролям, он может обновить команды подключения к кластеру EMR, указав роль ARN, которую он хочет передать в качестве роли среды выполнения. Для лучшего взаимодействия с пользователем вы можете настроить файл конфигурации в домашнем каталоге пользователя на Эластичная файловая система Amazon (Amazon EFS), которая автоматически информирует пользовательский интерфейс Studio о ролях, доступных для подключения пользователю. Вы также можете автоматизировать этот процесс с помощью Конфигурации жизненного цикла Studio. Мы предоставляем следующий пример сценария настройки жизненного цикла для настройки ролей:

#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat < "$FILE"
{
    "emr-execution-role-arns":
    {
      "": [
          "arn:aws:iam:::role/",
          "arn:aws:iam:::role/"
      ]
    }
}
EOF

Подключайтесь к кластерам из пользовательского интерфейса Studio.

После настройки ролей и сценариев конфигурации жизненного цикла вы можете запустить пользовательский интерфейс Studio и подключиться к кластерам при создании новой записной книжки с использованием любого из следующих ядер:

  • DataScience — ядро ​​​​Python 3
  • DataScience 2.0 — ядро ​​Python 3
  • DataScience 3.0 — ядро ​​Python 3
  • SparkAnalytics 1.0 — ядра SparkMagic и PySpark
  • SparkAnalytics 2.0 — ядра SparkMagic и PySpark
  • SparkMagic — ядро ​​PySpark

Примечание. Пользовательский интерфейс Studio для подключения к кластерам EMR с использованием ролей среды выполнения работает только в JupyterLab версии 3. См. Версии Jupyter для получения подробной информации об обновлении до JL3.

Разверните решение

Чтобы протестировать решение от начала до конца, мы предоставляем шаблон CloudFormation, который настраивает службы, включенные в архитектуру, для обеспечения повторяющихся развертываний. Этот шаблон создает следующие ресурсы:

  • Ведро S3 для озера данных.
  • Кластер EMR с включенными ролями среды выполнения EMR.
  • Роли IAM для доступа к данным в озере данных с детализированными разрешениями:
    • Marketing-data-access-role
    • Sales-data-access-role
    • Electronics-data-access-role
  • Домен Studio и два профиля пользователя. Роли выполнения Studio для пользователей позволяют пользователям принимать на себя соответствующие роли среды выполнения EMR.
  • Конфигурация жизненного цикла, позволяющая выбрать роль для подключения к EMR.
  • База данных Lake Formation, заполненная данными TPC.
  • Сетевые ресурсы, необходимые для настройки, такие как VPC, подсети и группы безопасности.

Чтобы развернуть решение, выполните следующие действия:

  1. Выберите Стек запуска для запуска стека CloudFormation:
    Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  2. Введите имя стека, укажите следующие параметры –
    • Тайм-аут простоя для кластера EMR (чтобы не платить за кластер, когда он не используется).
    • URI S3 с ключом шифрования EMR. Вы можете выполнить шаги, описанные в документации EMR. здесь для создания ключа и zip-файла для вашего региона. Если вы развертываете на востоке США (Северная Вирджиния), не забудьте использовать CN=*.ec2.internal, как указано в документации здесь. Обязательно загрузите zip-файл в корзину S3 в том же регионе, что и развертывание стека CloudFormation.
  3. Выберите Я признаю, что AWS CloudFormation может создавать ресурсы IAM с пользовательскими именами.
  4. Выберите Создать стек.

После создания стека разрешите Amazon EMR запрашивать формацию озера, обновив настройки фильтрации внешних данных в формации озера. Следуйте инструкциям, приведенным в руководстве по формированию озера. здесьи выберите «Amazon EMR» для Значения тега сеансаи введите идентификатор своей учетной записи AWS в поле Идентификаторы аккаунтов AWS.

Проверка доступа к данным на основе ролей

Имея инфраструктуру, вы готовы проверить детализированный доступ к данным для двух пользователей Studio. Напомним, что пользователь Дэвид должен иметь доступ только к неконфиденциальным данным клиента. Тина может получить доступ к данным в двух таблицах: продажи и информация о продукте. Давайте протестируем каждый профиль пользователя.

Профиль пользователя Дэвида

Чтобы проверить доступ к данным с помощью профиля пользователя Дэвида, выполните следующие действия:

  1. Войдите в консоль AWS.
  2. Из созданного домена Studio запустите Studio из профиля пользователя david-non-sensitive-customer.
  3. В пользовательском интерфейсе Studio запустите блокнот с любым из поддерживаемых ядер, например образ SparkMagic с ядром PySpark.

Кластер предварительно создается в аккаунте.

  1. Подключиться к кластеру, выбрав Кластер в блокноте и выбрав кластер -emr-cluster. Во всплывающем окне выбора ролей выберите -marketing-data-access-role.
  2. Выберите Свяжитесь.
    Это автоматически создаст ячейку записной книжки с магическими командами для подключения к кластеру. Подождите, пока ячейка выполнится и соединение будет установлено, прежде чем переходить к остальным шагам.

Теперь давайте запросим маркетинговую таблицу из блокнота.

  1. В новой ячейке введите следующий запрос и запустите ячейку:
    sqlContext.sql("show databases").show()
    # use the TPC dataset
    sqlContext.sql("use tpc")
    sqlContext.sql("select * from dl_tpc_customer limit 10").show()

После успешного выполнения ячейки вы можете просмотреть первые 10 записей в таблице. Обратите внимание, что вы не можете просмотреть имя клиента, так как у пользователя есть разрешения только на чтение неконфиденциальных данных посредством фильтрации на уровне столбца.

Давайте проверим, чтобы убедиться, что Дэвид не может прочитать конфиденциальные данные клиентов.

  1. В новой ячейке выполните следующий запрос:
    sqlContext.sql("select * from dl_tpc_customer_address limit 10").show()

Эта ячейка должна выдавать ошибку «Отказано в доступе».

Профиль пользователя Тины

Исполнительная роль Тины в Studio позволяет ей получить доступ к базе данных Lake Formation с помощью двух исполнительных ролей EMR. Это достигается путем перечисления ARN ролей в файле конфигурации в файловом каталоге Тины. Эти роли можно установить с помощью Конфигурации жизненного цикла Studio для сохранения ролей при перезапуске приложения. Чтобы проверить доступ Тины, выполните следующие действия:

  1. Запуск Studio из профиля пользователя tina-sales-electronics.

Рекомендуется закрывать все предыдущие сеансы Studio в браузере при переключении профилей пользователей. Одновременно может быть только один активный сеанс пользователя Studio.

  1. В пользовательском интерфейсе Studio запустите блокнот с любым из поддерживаемых ядер, например образ SparkMagic с ядром PySpark.
  2. Подключиться к кластеру, выбрав Кластер в блокноте и выбрав кластер -emr-cluster.
  3. Выберите Свяжитесь.

Поскольку профиль Тины настроен с несколькими ролями EMR, вам будет предложено раскрывающееся меню пользовательского интерфейса, позволяющее подключаться с использованием нескольких ролей.

  1. Выберите роль -sales-data-access-role , а затем выбрать Свяжитесь.
    Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Роль выполнения Studio также доступна в раскрывающемся списке, поскольку кластеры подключаются с использованием роли выполнения пользователя по умолчанию для подключения к кластеру.

Вы также можете напрямую предоставить Lake Formation доступ к исполнительной роли пользователя. Это автоматически создаст ячейку записной книжки с магическими командами для подключения к кластеру с использованием выбранной роли. Теперь давайте запросим таблицу продаж из записной книжки.

  1. В новой ячейке введите следующий запрос и запустите ячейку:
    sqlContext.sql("show databases").show()
    # use the TPC dataset
    sqlContext.sql("use tpc")
    sqlContext.sql("select * from dl_tpc_web_sales limit 10").show()

После успешного выполнения ячейки вы можете просмотреть первые 10 записей в таблице.

Теперь давайте попробуем получить доступ к таблице продуктов.

  1. Выберите Кластер еще раз и выберите кластер.
  2. Во всплывающем окне подсказки роли выберите роль -electronics-data-access-role и подключитесь к кластеру.
  3. После успешного подключения к кластеру с ролью доступа к электронным данным создайте новую ячейку и выполните следующий запрос:
    sqlContext.sql("select * from dl_tpc_item limit 10").show()

Эта ячейка должна завершиться успешно, и вы сможете просмотреть первые 10 записей в таблице продуктов.

С одним профилем пользователя Studio теперь вы успешно принимаете несколько ролей и запрашиваете данные в Lake Formation, используя несколько ролей, без необходимости перезапуска ноутбуков или создания дополнительных кластеров. Теперь, когда вы можете получить доступ к данным с помощью соответствующих ролей, вы можете интерактивно исследовать данные, визуализировать данные и подготовить данные для обучения. Вы также использовали разные профили пользователей, чтобы предоставить пользователям из разных групп доступ к определенной таблице или столбцам и строкам без необходимости в дополнительных кластерах.

Убирать

Когда вы закончите экспериментировать с этим решением, очистите свои ресурсы:

  1. Закройте приложения Studio для профилей пользователей. Видеть Завершение работы и обновление SageMaker Studio и приложений Studio для инструкций. Перед удалением стека убедитесь, что все приложения удалены.

Кластер EMR будет автоматически удален по истечении времени простоя.

  1. Удалите том EFS, созданный для домена. Вы можете просмотреть том EFS, подключенный к домену, с помощью Описать домен Вызов API.
  2. Обязательно очистить корзины S3 созданный этим стеком.
  3. Удалить стек из консоли AWS CloudFormation.

Заключение

В этом посте показано, как можно использовать роли среды выполнения для подключения Studio к Amazon EMR, чтобы применить детальное управление доступом к данным с помощью Lake Formation. Мы также продемонстрировали, как несколько пользователей Studio могут подключаться к одному и тому же кластеру EMR, каждый из которых использует роль IAM среды выполнения с разрешениями, соответствующими их индивидуальному уровню доступа к данным. Мы подробно описали шаги, необходимые для ручной настройки интеграции, и предоставили шаблон CloudFormation для сквозной настройки инфраструктуры. Эта функция доступна в следующих регионах AWS: Европа (Париж), Восток США (Северная Вирджиния и Огайо) и Запад США (Орегон), а шаблон CloudFormation будет развернут в странах Восток США (Северная Вирджиния и Огайо) и Запад США. (Орегон).

Чтобы узнать больше об использовании EMR с SageMaker Studio, посетите Подготовка данных с помощью Amazon EMR. Мы рекомендуем вам опробовать эту новую функцию и связаться с Машинное обучение и ИИ сообщество если у вас есть какие-либо вопросы или отзывы!


Об авторах

Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Дурга Сьюри является архитектором решений машинного обучения в команде Amazon SageMaker Service SA. Она увлечена тем, чтобы сделать машинное обучение доступным для всех. За три года работы в AWS она помогла настроить платформы AI/ML для корпоративных клиентов. Когда она не работает, она любит поездки на мотоцикле, детективные романы и походы со своим четырехлетним хаски.

Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Шрихарш Адари является старшим архитектором решений в Amazon Web Services (AWS), где он помогает клиентам работать в обратном направлении от бизнес-результатов для разработки инновационных решений на AWS. На протяжении многих лет он помогал множеству клиентов в преобразовании платформ данных в различных отраслевых вертикалях. Его основная область знаний включает технологическую стратегию, аналитику данных и науку о данных. В свободное время он любит играть в теннис, смотреть сериалы и играть в таблу.

Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Майра Ладейра Танке является специалистом по машинному обучению, архитектором решений в AWS. Имея опыт работы в области науки о данных, она имеет 9-летний опыт разработки и создания приложений машинного обучения для клиентов из разных отраслей. В качестве технического руководителя она помогает клиентам ускорить достижение ценности бизнеса с помощью новых технологий и инновационных решений. В свободное время Майра любит путешествовать и проводить время со своей семьей в теплом месте.

Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сумедха Свами является главным менеджером по продуктам в Amazon Web Services. Он возглавляет команду SageMaker Studio, которая встраивает ее в IDE для интерактивной обработки данных и обработки данных. Последние 15 лет он занимался созданием ориентированных на клиентов потребительских и корпоративных продуктов с использованием машинного обучения. В свободное время он любит фотографировать удивительную геологию американского юго-запада.

Применяйте детальный контроль доступа к данным с помощью AWS Lake Formation и Amazon EMR из Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джун Лю работает инженером-программистом в команде SageMaker Notebooks. Он имеет степень магистра технических наук Университета Дьюка. Он работает в Amazon с 2015 года и участвовал в таких сервисах AWS, как Amazon Machine Learning, Amazon SageMaker Notebooks и Amazon SageMaker Studio. В свободное время он любит проводить время со своей семьей, читать, готовить и играть в видеоигры.

Отметка времени:

Больше от Машинное обучение AWS