Логотип Зефирнет

Централизованное управление озером данных с помощью AWS Lake Formation и создание современной архитектуры данных с помощью Amazon Redshift Spectrum.

Дата:

Многие клиенты модернизируют свою архитектуру данных с помощью Amazon Redshift, чтобы обеспечить доступ ко всем своим данным из центрального хранилища данных. Им нужен более простой, масштабируемый и централизованный способ определения и применения политик доступа к своим озерам данных на Простой сервис хранения Amazon (Амазон С3). Они хотят, чтобы политики доступа позволяли их потребителям озера данных использовать аналитический сервис по своему выбору, чтобы наилучшим образом соответствовать операциям, которые они хотят выполнять с данными. Хотя существующий метод использования политик корзины Amazon S3 для управления контролем доступа является вариантом, при увеличении количества комбинаций уровней доступа и пользователей управление политиками на уровне корзины может не масштабироваться.

Формирование озера AWS позволяет упростить и централизовать управление доступом. Он позволяет организациям управлять контролем доступа к озерам данных на базе Amazon S3, используя знакомые концепции баз данных, таблиц и столбцов (с дополнительными возможностями). Расширенные опции как безопасность на уровне строк и ячеек). Формирование озера использует Клей AWS Каталог данных для обеспечения контроля доступа к озеру данных Amazon S3 с наиболее часто используемыми аналитическими сервисами AWS, такими как Амазонка Redshift (через Спектр красного смещения Амазонки), Амазонка Афина, AWS Glue ETL и Амазонка ЭМИ (для ноутбуков на базе Spark). Эти сервисы поддерживают модель разрешений Lake Formation по умолчанию, что позволяет клиентам упростить, стандартизировать и масштабировать управление безопасностью данных для озер данных.

С помощью Amazon Redshift вы можете построить современную архитектуру данных, чтобы беспрепятственно расширять хранилище данных до озера данных и считывать все данные — данные в хранилище данных и данные в озере данных — без создания нескольких копий данных. Функция Amazon Redshift Spectrum позволяет напрямую запрашивать ваше озеро данных S3, и многие клиенты используют ее для модернизации своей платформы данных. Вы можете использовать управляемое хранилище Amazon Redshift для часто используемых данных и перемещать менее часто используемые данные в озеро данных Amazon S3 и безопасно получать к ним доступ с помощью Redshift Spectrum.

В этом посте мы обсудим, как можно использовать AWS Lake Formation для централизации управления данными и управления доступом к данным, используя Amazon Redshift Spectrum для запросов к озеру данных. Lake Formation позволяет предоставлять и отзывать разрешения для баз данных, таблиц и объектов каталога столбцов, созданных поверх озера данных Amazon S3. Это проще для клиентов, так как похоже на управление разрешениями для реляционных баз данных.

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

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

На следующей диаграмме показана архитектура нашего решения.

Рабочий процесс решения состоит из следующих шагов:

  1. Данные, хранящиеся в озере данных Amazon S3, сканируются с помощью сканера AWS Glue.
  2. Сканер извлекает метаданные данных в Amazon S3 и сохраняет их в виде базы данных и таблиц в каталоге данных AWS Glue.
  3. Вы регистрируете корзину Amazon S3 в качестве расположения озера данных в Lake Formation. Он изначально интегрирован с каталогом данных.
  4. Вы используете Lake Formation для предоставления разрешений на уровне базы данных, таблицы и столбца определенным Управление идентификацией и доступом AWS (ИАМ) роли.
  5. Вы создаете внешние схемы в Amazon Redshift для управления доступом для отделов маркетинга и финансов.
  6. Вы предоставляете группам по маркетингу и финансам доступ к их соответствующим внешним схемам и связываете с ними соответствующие роли IAM. Роль администратора и группа администраторов ограничены для работы администратора.
  7. Пользователи отдела маркетинга и финансов теперь могут принимать на себя соответствующие роли IAM и запрашивать данные с помощью редактора запросов SQL к своим внешним схемам в Amazon Redshift.

Настройки безопасности Lake Formation по умолчанию

Для обеспечения обратной совместимости с AWS Glue Lake Formation имеет следующие начальные настройки безопасности:

  • Группе предоставлено суперразрешение IAMAllowedPrincipals на всех существующих ресурсах каталога данных.
  • Для новых ресурсов каталога данных включены настройки для использования только управления доступом IAM.

Чтобы изменить настройки безопасности, см. Изменение настроек безопасности по умолчанию для озера данных.

Примечание. Оставьте параметры по умолчанию без изменений, пока не будете готовы полностью перейти на модель разрешений Lake Formation. Вы можете обновить настройки на уровне базы данных, если хотите, чтобы разрешения, установленные Lake Formation, вступили в силу. Дополнительные сведения об обновлениях см. Обновление разрешений данных AWS Glue до модели формирования озера AWS.

Мы не рекомендуем возвращаться от модели разрешений Lake Formation к модели разрешений только IAM. Вы также можете сначала развернуть решение в новой тестовой учетной записи.

Предпосылки

Чтобы настроить это решение, вам необходимо иметь базовые знания о Консоль управления AWS, Аккаунт AWSи доступ к следующим сервисам AWS:

Создание администратора озера данных

Администраторы озера данных изначально являются единственными пользователями или ролями IAM, которые могут предоставлять разрешения Lake Formation на расположения данных и ресурсы каталога данных любому участнику.

Чтобы настроить пользователя IAM в качестве администратора озера данных, добавьте предоставленную встроенную политику к пользователю IAM или роли IAM, которую вы используете для выделения ресурсов для этого решения для блога. Для получения более подробной информации см. Создание администратора озера данных.

  1. На консоли IAM выберите Пользователии выберите пользователя IAM, которого вы хотите назначить администратором озера данных.
  2. Выберите Добавить встроенную политику на Разрешения... и добавьте следующую политику:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lakeformation:GetDataLakeSettings", "lakeformation:PutDataLakeSettings" ], "Resource": "*" } ]
    }

  3. Укажите имя политики.
  4. Проверьте и сохраните настройки.

Примечание. Если вы используете существующего пользователя/роль администратора, это может быть уже подготовлено.

  1. Войдите в консоль управления AWS в качестве назначенного пользователя или роли IAM администратора озера данных для этого решения.

Примечание. Шаблон CloudFormation не будет работать, если вы пропустите следующий шаг.

  1. Если вы впервые используете консоль Lake Formation, выберите Добавить себя , а затем выбрать Начать.

Вы также можете добавить себя в качестве администратора озера данных, перейдя на Административные роли и задачи под Разрешения..., наведите на Выберите администраторов, и добавьте себя в качестве администратора, если вы пропустили это на начальном экране приветствия.

Предоставление ресурсов с помощью CloudFormation

На этом шаге мы создаем ресурсы решения, используя Шаблон CloudFormation. Шаблон выполняет следующие действия:

  • Создает корзину S3 для копирования образцов файлов данных и сценариев SQL.
  • Регистрирует местоположение озера данных S3 с помощью Lake Formation.
  • Создает роли и политики IAM в соответствии с требованиями среды.
  • Назначает участников (роли IAM) для обработки настроек озера данных.
  • Создает ресурсы Lambda и Step Functions для загрузки необходимых данных
  • Запускает задания сканера AWS Glue для создания таблиц каталога данных.
  • Настраивает разрешения на формацию озера
  • Создает кластер Amazon Redshift.
  • Запускает сценарий SQL для создания группы базы данных, пользователя базы данных и внешних схем для групп администрирования, маркетинга и финансов.

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

  1. Запустите предоставленный шаблон в регионе AWS. us-east-1.
  2. Выберите Следующая.
  3. Что касается Название стека, вы можете оставить имя стека по умолчанию или изменить его.
  4. Что касается Дбпароль, введите безопасный пароль вместо того, чтобы использовать пароль по умолчанию.
  5. Что касается Входящий трафик, измените диапазон IP-адресов на IP-адрес вашего локального компьютера в формате CIDR вместо использования по умолчанию.
  6. Выберите Следующая.
  7. Выберите Следующая снова, пока не попадете на страницу обзора.
  8. Выберите Я признаю, что AWS CloudFormation может создавать ресурсы IAM с пользовательскими именами.
  9. Выберите Создать стек.

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

Обновите настройки озерной формации по умолчанию

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

  1. На консоли Lake Formation под Каталог данных на панели навигации выберите Databases.
  2. Выберите базу данных, которую вы создали с помощью шаблона CloudFormation.
  3. Выберите Редактировать.
  4. Отменить Используйте только управление доступом IAM для новых таблиц в базе данных.
  5. Выберите Сохранить.

Это действие важно, потому что оно удаляет модель управления IAM из этой базы данных и позволяет только Lake Formation получать или отзывать доступ к ней. Этот шаг гарантирует, что другие шаги в этом решении будут успешными.

  1. Выберите Databases в навигационной панели.
  2. Выберите ту же базу данных.
  3. На Действия Меню, выберите Просмотр разрешений.

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

  1. Выберите IAMAllowedPrincipals сгруппируйся и выбери Отозвать чтобы удалить настройки разрешений по умолчанию для этой отдельной базы данных.

Ассоциация IAMAllowedPrincipal строка больше не отображается в списке на Разрешения... стр.

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

  1. На консоли Lake Formation выберите Разрешения озера данных в навигационной панели.
  2. Фильтры Principal:IAMAllowedPrincipals и Database:<<database name>>.

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

  1. Выберите каждую таблицу по одной и выберите Отозвать.

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

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

Шаблон CloudFormation автоматически выделяет множество ресурсов для создания вашей среды. В этом разделе мы проверим некоторые ключевые ресурсы, чтобы лучше понять их.

Ресурсы озерной формации

На консоли Lake Formation убедитесь, что новое расположение озера данных зарегистрировано с ролью IAM на Расположение озера данных стр.

Это роль IAM, которую любой интегрированный сервис, такой как Amazon Redshift, предполагает для доступа к данным в зарегистрированном местоположении Amazon S3. Эта интеграция происходит по умолчанию, когда применяются правильные роли и политики. Подробнее см. Требования к ролям, используемым для регистрации местоположений.

Проверить Административные роли и задачи подтвердите, что вошедший в систему пользователь добавлен в качестве администратора озера данных и IAMAllowedPrincipals добавляется как создатель базы данных.

Затем проверьте таблицы, созданные сканерами AWS Glue в базе данных каталога данных. Эти таблицы являются логическими объектами, поскольку данные находятся в расположении Amazon S3. После того, как вы создадите эти объекты, вы сможете получить к ним доступ через различные сервисы.

Наконец, проверьте разрешения, установленные шаблоном, с помощью модели разрешений Lake Formation для таблиц, к которым будут обращаться финансовые и маркетинговые пользователи из Amazon Redshift.

На следующем снимке экрана показано, что финансовая роль имеет доступ ко всем столбцам для store и item таблицы, а только перечисленные столбцы для store_sales таблице.

Точно так же вы можете просмотреть доступ для маркетинговой роли, которая имеет доступ ко всем столбцам в customer_activity и store_sales столы.

Ресурсы Amazon S3

Шаблон CloudFormation создает две корзины S3:

  • озеро данных - Содержит данные, используемые для этого поста
  • скрипт – Содержит SQL, который мы используем для создания объектов базы данных Amazon Redshift.

Откройте приложение script ведро, чтобы увидеть скрипты. Вы можете загрузить и открыть их для просмотра используемого кода SQL.

Ассоциация setup_lakeformation_demo.sql сценарий дает вам код SQL для создания схемы внешней базы данных и назначения различных ролей для целей управления данными. Внешняя схема предназначена для объектов на основе каталога данных AWS Glue, которые указывают на данные в озере данных. Затем мы предоставляем доступ к различным группам баз данных и пользователям для управления безопасностью для финансовых и маркетинговых пользователей.

Скрипты выполняются в следующем порядке:

  1. sp_create_db_group.sql
  2. sp_create_db_user.sql
  3. setup_lakeformation_demo.sql

Ресурсы Amazon Redshift

В консоли Amazon Redshift выберите Кластеры в области навигации и выберите кластер, который вы создали с помощью шаблона CloudFormation. Затем выберите Объекты меню.

Ассоциация Разрешения кластера В разделе перечислены три присоединенные роли. В шаблоне использовалась роль администратора для подготовки объектов уровня базы данных Amazon Redshift. Финансовая роль привязана к финансовой схеме в Amazon Redshift, а маркетинговая роль — к маркетинговой схеме.

Каждой из этих ролей предоставляются разрешения таким образом, что они могут использовать редактор запросов Amazon Redshift для запросов к таблицам каталога данных с помощью Redshift Spectrum. Подробнее см. Использование Redshift Spectrum с AWS Lake Formation и Запрос данных в озере данных с помощью Amazon Redshift Spectrum.

Запросить данные

МЫ ИСПОЛЬЗУЕМ Редактор запросов Amazon Redshift v2 для запроса внешней схемы и таблиц каталога данных (внешних таблиц). Внешняя схема уже создана как часть шаблона CloudFormation. Когда внешняя схема создается с помощью каталога данных, таблицы в базе данных создаются автоматически и доступны через Amazon Redshift как внешние таблицы.

  1. В консоли Amazon Redshift выберите Редактор запросов v2.
  2. Выберите Настроить учетную запись.
  3. Выберите кластер базы данных.
  4. Что касается База данных, войти dev.
  5. Что касается , войти awsuser.
  6. Что касается Аутентификация, наведите на Временные учетные данные.
  7. Выберите Создать соединение.

Когда вы подключены и вошли в систему как администратор, вы можете видеть как локальные, так и внешние схемы и таблицы, как показано на следующем снимке экрана.

Проверка разрешений на создание озера на основе ролей в Amazon Redshift

Затем мы проверяем, как параметры безопасности Lake Formation работают для пользователей, занимающихся маркетингом и финансами.

  1. В редакторе запросов выберите (щелкните правой кнопкой мыши) подключение к базе данных.
  2. Выберите Изменить подключение.
  3. Что касается , войти marketing_ro.
  4. Выберите Изменить подключение.
  5. После подключения как maketing_ro, выберите базу данных dev в кластере и перейдите к customer_activity таблице.
  6. Выберите значок обновления.
  7. Повторите эти шаги, чтобы отредактировать соединение и обновить пользователя до finance_ro.
  8. Попробуйте еще раз обновить dev база данных.

Как и ожидалось, этот пользователь имеет доступ только к разрешенной схеме и таблицам.

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

Безопасность на уровне столбцов с разрешениями Lake Formation

Lake Formation также позволяет вам указать, какие столбцы может или не может видеть участник в таблице. Например, при выборе store_sales как marketing_ro пользователь, вы видите много столбцов, например customer_purchase_estimate, Однако, поскольку finance_ro пользователь, вы не видите эти столбцы.

Ручное управление доступом через консоль Lake Formation

В этом посте мы работали с шаблоном CloudFormation.
-среда, которая представляет собой автоматизированный способ создания шаблонов среды и упрощения операций.

В этом разделе мы покажем, как вы можете настроить все конфигурации через консоль, и мы используем другую таблицу в качестве примера, чтобы провести вас по шагам.

Как показано на предыдущих шагах, маркетинговый пользователь в этой среде имеет доступ ко всем столбцам таблиц. customer_activity и store_sales во внешней схеме retail_datalake_marketing. Мы изменим некоторые из них вручную, чтобы увидеть, как это работает с помощью консоли.

  1. На консоли Lake Formation выберите Разрешения озера данных.
  2. Фильтровать по принципалу RedshiftMarketingRole.
  3. Выберите принципала для store_sales стол и выберите Отозвать.
  4. Подтвердите, выбрав Отозвать снова.

Появится сообщение об успешном выполнении, и строка разрешений больше не будет указана.

  1. Выберите Грант настроить новый уровень разрешений для маркетингового пользователя на store_sales таблица на уровне столбца.
  2. Выберите Пользователи и роли IAM и выбери свою роль.
  3. В LF-теги или ресурсы каталога раздел, выберите Именованные ресурсы каталога данных.
  4. Что касается Databases, выберите свою базу данных.
  5. Что касается таблицы, выбрать store_sales таблице.
  6. Что касается Разрешения таблицычек Выберите.
  7. В Разрешения на данные раздел, выберите Простой доступ на основе столбцов.
  8. Выберите Исключить столбцы.
  9. Выберите столбцы, как показано на следующем снимке экрана.
  10. Выберите Грант.

Теперь мы снова запрашиваем таблицу из Amazon Redshift, чтобы убедиться, что действующие изменения соответствуют элементам управления, размещенным Lake Formation. В следующем запросе мы выбираем неавторизованный столбец:

/* Selecting columns not authorized will result in error. */
select s_country, ss_net_profit from retail_datalake_marketing.store_sales;

Как и ожидалось, получаем ошибку.

Убирать

Очистите ресурсы, созданные шаблоном CloudFormation, чтобы избежать ненужных затрат для вашей учетной записи AWS. Вы можете удалить стек CloudFormation, выбрав стек в консоли AWS CloudFormation и выбрав Удалить. Это действие удаляет все предоставленные им ресурсы. Если вы вручную обновили ресурс, предоставленный шаблоном, вы можете столкнуться с некоторыми проблемами во время очистки, и вам потребуется устранить их вручную.

Обзор

В этом посте мы показали, как можно интегрировать Lake Formation с Amazon Redshift, чтобы беспрепятственно контролировать доступ к озеру данных Amazon S3. Мы также продемонстрировали, как выполнять запросы к озеру данных с помощью Redshift Spectrum и внешних таблиц. Это мощный механизм, который помогает вам построить современную архитектуру данных, чтобы легко запрашивать данные в вашем озере данных и хранилищах данных вместе. Мы также увидели, как можно использовать шаблоны CloudFormation для автоматизации создания ресурсов с помощью инфраструктуры как кода. Вы можете использовать это, чтобы упростить свои операции, особенно если вы хотите реплицировать настройку ресурсов из среды разработки в производственную среду во время циклов вашего проекта.

Наконец, мы рассмотрели, как администраторы озера данных могут вручную управлять поиском объектов каталога данных и предоставлять или отзывать доступ на уровне базы данных, таблицы и столбца. Мы рекомендуем вам выполнить действия, описанные в этом посте, и использовать шаблон CloudFormation для настройки безопасности в Lake Formation для управления доступом к озеру данных из Redshift Spectrum.

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


Об авторах

Вайбхав Агравал является специалистом по аналитике, архитектором решений в AWS. На протяжении всей своей карьеры он помогал клиентам разрабатывать и создавать хорошо продуманные платформы для аналитики и поддержки принятия решений.

Джейсон Педреза — специалист по аналитике, архитектор решений в AWS с более чем 13-летним опытом работы с хранилищами данных. До работы в AWS он создавал решения для хранилищ данных на Amazon.com. Он специализируется на Amazon Redshift и помогает клиентам создавать масштабируемые аналитические решения.

Раджеш Фрэнсис является старшим специалистом по работе с клиентами в сфере аналитики в AWS. Он специализируется на Amazon Redshift и занимается продвижением рынка AWS и технической стратегией для служб хранения данных и аналитики. Раджеш тесно сотрудничает с крупными стратегическими клиентами, помогая им освоить наши новые услуги и функции, развивать долгосрочные партнерские отношения и сообщать о требованиях клиентов нашим командам по разработке продуктов, чтобы они могли ориентироваться в нашей дорожной карте продукта.

Источник: https://aws.amazon.com/blogs/big-data/centralize-governance-for-your-data-lake-using-aws-lake-formation-while-enabling-a-modern-data-architecture- с амазонским спектром красного смещения/

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?