Крупный проект бизнес-аналитики (BI) с множеством пользователей и команд, а также конфиденциальной информацией требует многогранной архитектуры безопасности. Такая архитектура должна предоставить администраторам и архитекторам BI возможность минимизировать объем информации, доступной пользователям. Для простого решения по управлению Amazon QuickSight разрешения на доступ к пользователям и ресурсам, вы можете использовать Интерфейс командной строки AWS (AWS CLI) или Консоль управления AWS чтобы вручную изменить роль пользователя QuickSight и доступ к информационной панели. Однако в определенных случаях предприятие может легко иметь сотни или тысячи пользователей и групп, и эти методы управления доступом неэффективны. Мы получили большое количество запросов на предоставление расширенного программируемого подхода для развертывания и управления централизованной архитектурой безопасности QuickSight.
В этом посте описаны лучшие практики аутентификации и авторизации QuickSight, детального контроля доступа, а также представлено централизованное облачное приложение с Комплект для разработки облачных сервисов AWS (AWS CDK) для загрузки. Одним из преимуществ нашего решения является то, что предприятия могут развернуть структуру безопасности для управления доступом к своей BI, не покидая AWS.
Все конфигурации сохраняются в папке Хранилище параметров AWS Systems Manager. Хранилище параметров обеспечивает безопасное иерархическое хранилище для управления данными конфигурации и управления секретами. Вы можете хранить такие данные, как имя пользователя, права пользователя, пароли и строки базы данных, в качестве значений параметров. Вы можете ссылаться Менеджер систем AWS параметры в ваших сценариях, а также в рабочих процессах настройки и автоматизации, используя уникальное имя, указанное вами при создании параметра.
Шаблон приложения AWS CDK вписывается в инфраструктуру непрерывной интеграции и непрерывного развертывания (CI/CD) и предоставляет или отменяет все аутентификации и авторизации на основе определенной политики, предписанной AWS. Это позволяет избежать возможных человеческих ошибок, допущенных разработчиками или администраторами BI. Разработчики BI могут редактировать параметры конфигурации, чтобы предоставлять конечным пользователям новые информационные панели. В то же время администраторы BI могут редактировать другой набор параметров для управления пользователями или группами. Эта конструкция AWS CDK CI/CD устраняет разрыв между разработкой и эксплуатацией, обеспечивая автоматизацию создания и развертывания приложений BI.
Требования безопасности
При разработке корпоративных приложений BI распространенным вариантом использования является мультитенантность, которая обслуживает несколько групп пользователей с помощью одной инфраструктуры. Арендаторами могут быть либо разные клиенты независимого поставщика программного обеспечения (ISV), либо разные отделы предприятия. В многоарендной схеме каждый арендатор совместно использует информационные панели, анализы и другие ресурсы QuickSight. Каждый пользователь, который может видеть всех других пользователей, принадлежащих к тому же арендатору (например, при совместном использовании контента), остается невидимым для других арендаторов. В каждом клиенте команде администраторов BI приходится создавать разные группы пользователей для управления авторизацией данных, включая разрешения на доступ к активам и доступ к данным на детальном уровне.
Давайте подробно обсудим некоторые варианты использования разрешений на доступ к активам. В приложении BI различные активы обычно классифицируются в соответствии с бизнес-доменами (например, операционная панель мониторинга или панель сводных данных) и классификацией данных (критические, строго конфиденциальные, только для внутреннего использования и общедоступные). Например, вы можете иметь две панели мониторинга для анализа данных результатов продаж. Внешний вид обеих информационных панелей схож, но классификация безопасности данных различна. Одна панель мониторинга, называемая «Критическая панель продаж», содержит важные столбцы и строки данных. Другая информационная панель, называемая «Строго конфиденциальная панель продаж», содержит строго конфиденциальные столбцы и строки данных. Некоторым пользователям предоставляется разрешение на просмотр обеих информационных панелей, а другие имеют более низкий уровень безопасности и могут получить доступ только к строго конфиденциальной информационной панели продаж.
В следующем случае мы обращаемся к доступу к данным на детальном уровне следующим образом:
- Доступ на уровне строк (RLS) – Некоторые пользователи, у которых есть доступ к информационной панели Sales Critical, могут просматривать только данные по США. Однако некоторые глобальные пользователи могут просматривать данные всех стран, включая США и Великобританию.
- Доступ на уровне столбца (CLS) – Некоторые пользователи могут просматривать только столбцы данных, не позволяющие установить личность (PII), в наборе данных, тогда как отдел кадров может просматривать все столбцы того же набора данных.
В крупных проектах может быть несколько клиентов, сотни групп и тысячи пользователей в одной учетной записи QuickSight. Команда лидеров данных хочет развернуть один протокол для создания и аутентификации пользователей, чтобы снизить затраты на обслуживание и снизить риски безопасности. Архитектура и рабочий процесс, описанные в этом посте, помогают лидеру данных достичь этой цели.
Кроме того, чтобы избежать человеческих ошибок в повседневной работе, мы хотим, чтобы эти разрешения безопасности предоставлялись и отзывались автоматически, а также соответствовали инфраструктуре CI/CD. Подробности объяснены позже в этом посте.
Обзор архитектуры
На следующей схеме показана архитектура учетной записи QuickSight этого решения.
- Авторы создают информационные панели и обновляют хранилище параметров AWS Systems Manager, чтобы предоставлять информационные панели различным группам.
- Администраторы одобряют заявки авторов
- Администраторы обновляют управление пользователями (роли, пространство имен) путем редактирования хранилища параметров AWS Systems ManagerParameter.
- DevOps развертывает обновления с помощью AWS CDK
* Группы: Группы разрешений доступа к объектам контролируют владельца/просматривающего объекты. Группы сегментов данных в сочетании с RLS/CLS управляют доступом к данным.
*Наборы данных: Содержит все данные, ограниченные безопасностью на уровне строк (RLS) и безопасностью на уровне столбцов (CLS).
На следующей диаграмме показан рабочий процесс аутентификации в архитектуре:
*Первый вход в QuickSight.: Если пользователь QuickSight не зарегистрирован до первого входа в систему, создается средство чтения, и только оно может просматривать панель целевой страницы, которая доступна всем пользователям этой учетной записи. На целевой странице представлен список отчетов, которые может просмотреть этот пользователь.
На следующей диаграмме показан рабочий процесс авторизации в этой архитектуре.
Детали схемы авторизации:
- Информация о пользователе (отдел, команда, географическое местоположение) хранится в Amazon Redshift, Amazon Athena или любой другой базе данных. В сочетании с сопоставлением групп и пользователей базы данных RLS созданы для управления доступом к данным.
- Почасовое назначение разрешений:
- В соответствии с сопоставлением имени (пользователя) группы и сотрудника (membership.csv) и сопоставления ролей группы (/qs/console/roles) функция AWS Lambda создает группы, регистрирует пользователей, назначает членов группы, удаляет членство в группах, продвигает читателей. автору или администратору и удаляет пользователей, если они понижены в должности с автора или администратора до читателя.
- В соответствии с сопоставлением групповых панелей в /qs/config/access функция AWS Lambda обновляет разрешения информационной панели для групп QuickSight.
- В соответствии с сопоставлением пространства имен группы в файлеmember.csv функция AWS Lambda создает группы QuickSight в указанном пространстве имен.
- Примерные параметры прав доступа к объектам и сегментам данных:
- Примеры параметров роли пользователя QuickSight:
- Пример данных членства.csv:
В этом решении развертываются пользовательские пространства имен для поддержки мультитенантности. default
пространство имен предназначено для всех внутренних пользователей компании (мы называем его OkTank). ОкТанк создает 3rd-Party
пространство имен для внешних пользователей. Если нам нужно поддерживать больше арендаторов, мы можем создать больше пользовательских пространств имен. По умолчанию мы ограничены 100 пространствами имен на одну учетную запись AWS. Чтобы увеличить этот лимит, свяжитесь с командой разработчиков QuickSight. Дополнительные сведения о мультиарендности см. Встраивайте мультитенантную аналитику в приложения с помощью Amazon QuickSight.
В каждом пространстве имен мы создаем разные типы групп. Например, в default
пространство имен, мы создаем BI-Admin
и BI-Developer
группы для admin
и author
пользователей. Для reader
мы развертываем два типа групп QuickSight для управления разрешениями на доступ к ресурсам и доступом к данным: группы разрешений на доступ к объектам и группы сегментов данных.
В следующей таблице показано, как группы разрешений доступа к объектам управляют разрешениями.
Название группы | Пространство имен | Разрешение | Заметки |
critical |
По умолчанию | Просмотр обеих информационных панелей (содержащих критически важные данные и строго конфиденциальные данные) | |
highlyconfidential |
По умолчанию | Просматривайте только высококонфиденциальную панель продаж | |
BI-Admin |
По умолчанию | Управление аккаунтом и редактирование всех активов | Пользователи в BI-Admin группе присвоены Admin Роль пользователя QuickSight. |
BI-Developer |
По умолчанию | Редактировать все ресурсы | Пользователи в BI-Developer группе назначается роль пользователя «Автор QuickSight». |
Power-reader |
По умолчанию | Просматривайте все активы и создавайте специальный анализ для создания аналитических отчетов самообслуживания. |
Пользователи в Однако эта группа не может сохранять или публиковать свои специальные отчеты. |
3rd-party |
Пространства имен не по умолчанию (3rd-party пространство имен, например) |
Могу только поделиться с читателями(3rd-party-reader группа, например) в том же пространстве имен |
В пространствах имен, отличных от заданных по умолчанию, мы также можем создавать другие группы разрешений доступа к объектам, которые аналогичны критической группе в пространстве имен по умолчанию. |
Дополнительные сведения о группах, пользователях и ролях пользователей QuickSight см. Управление доступом пользователей внутри Amazon QuickSight, Инициализация пользователей для Amazon QuickSightкачества Использование административных панелей для централизованного просмотра объектов Amazon QuickSight..
Второй тип групп (группы сегментов данных), объединенный с безопасность на уровне строк наборы данных и безопасность на уровне столбца, управляйте доступом к данным, как описано в следующей таблице.
Название группы | Пространство имен | Разрешение | Объем |
USA |
По умолчанию | Просматривайте данные только по США на любой информационной панели | Уровень строки |
GBR |
По умолчанию | Просматривайте данные только по Великобритании на любой информационной панели. | Уровень строки |
All countries |
По умолчанию | Просматривайте данные по всем странам на любой панели управления | Уровень строки |
non-PII |
По умолчанию | Невозможно просмотреть номера социального страхования, годовой доход и все другие столбцы данных, позволяющих идентифицировать личность. | На уровне столбца |
PII |
По умолчанию | Можно просматривать все столбцы, включая данные PII. | На уровне столбца |
Мы можем настроить подобные группы в пространствах имен, отличных от умолчанию.
Эти разные группы могут перекрывать друг друга. Например, если пользователь принадлежит к группам USA
, Critical
качества PII
, они могут просматривать данные по США на обеих панелях мониторинга со всеми столбцами. Следующая диаграмма Венна иллюстрирует отношения между этими группами.
Таким образом, мы можем определить многогранную архитектуру безопасности, объединив функции QuickSight, включая пространство имен, группу, пользователя, RLS и CLS. Все связанные конфигурации сохраняются в хранилище параметров. Список пользователей QuickSight и информация о сопоставлении групп и пользователей находятся в Простой сервис хранения Amazon (Amazon S3) в виде CSV-файла (с именем membership.csv
). Этот CSV-файл может представлять собой выходные результаты запросов LDAP. Несколько AWS Lambda функции запланированы для запуска каждый час (вы также можете вызывать эти функции по требованию, например, ежедневно, еженедельно или с любой детализацией по времени, которая соответствует вашим требованиям) для чтения параметров и membership.csv
. В соответствии с определенной конфигурацией функции Lambda создают, обновляют или удаляют группы, пользователей и права доступа к активам.
После завершения необходимых настроек безопасности функция Lambda вызывает API-интерфейсы QuickSight, чтобы получить обновленную информацию и записать результаты в корзину S3 в виде файлов CSV. Команда администраторов BI может создавать наборы данных с помощью этих файлов и визуализировать результаты с помощью информационных панелей. Для получения дополнительной информации см. Использование административных панелей для централизованного просмотра объектов Amazon QuickSight. и Создание административной консоли в Amazon QuickSight для анализа показателей использования.
Кроме того, ошибки функций Lambda и события удаления пользователей сохраняются в этом сегменте S3 для просмотра командой администраторов.
автоматизация
На следующей диаграмме показан общий рабочий процесс функций Lambda.
Мы используем программируемый метод для автоматического создания и настройки групп и пользователей. Для любого специального запроса на регистрацию пользователя (например, пользователь не записан в membership.csv
но из-за задержки), пока пользователь может быть аутентифицирован, он может предположить, что Управление идентификацией и доступом AWS (IAM) роль quicksight-fed-user
для самостоятельной настройки в качестве устройства чтения QuickSight. Это средство чтения с самостоятельной подготовкой может просматривать только панель мониторинга целевой страницы, на которой представлен список панелей мониторинга и соответствующих групп. В соответствии с сопоставлением групп информационных панелей этот новый читатель может подать заявку на членство в определенной группе для доступа к информационным панелям. Если владелец группы одобряет приложение, ежечасные функции Lambda добавляют нового пользователя в группу при следующем запуске.
Конвейер CI/CD начинается с AWS CDK. Администратор и автор BI могут обновить параметры Systems Manager для выпуска новых информационных панелей или других ресурсов QuickSight в стеке AWS CDK. granular_access_stack.py
. Администратор BI может обновить параметры Systems Manager в том же стеке, чтобы создавать, обновлять или удалять пространства имен, группы или пользователей. Затем команда DevOps сможет развернуть обновленный стек AWS CDK, чтобы применить эти изменения к параметрам Systems Manager или другим ресурсам AWS. Функции Lambda запускаются ежечасно для вызова API-интерфейсов для применения изменений к соответствующей учетной записи QuickSight.
Шкала
Функции Lambda ограничены максимальным временем выполнения в 15 минут. Чтобы преодолеть это ограничение, мы можем преобразовать лямбда-функции в Клей AWS Скрипты оболочки Python со следующими высокоуровневыми шагами:
- Скачать Бото3 файлы колес из pypi.org.
- Загрузите файл колеса в корзину S3.
- Скачать Лямбда-функции и объедините их в один скрипт Python и создайте скрипт оболочки AWS Glue Python.
- Добавьте путь S3 файла колеса Boto3 в путь к библиотеке Python. Если вам нужно добавить несколько файлов, разделите их запятой.
- Запланируйте ежедневное выполнение этого задания AWS Glue.
Для получения дополнительной информации см. Программирование ETL-скриптов AWS Glue на Python и Использование библиотек Python с AWS Glue.
Предпосылки
Для реализации этого решения у вас должны быть следующие предпосылки:
- Учетная запись QuickSight Enterprise
- Базовые знания Python
- Базовые знания SQL
- Базовые знания BI.
Создайте ресурсы
Создайте свои ресурсы, загрузив стек AWS CDK с сайта Репо GitHub.
В granular_access
папку, выполните команду cdk deploy granular-access
для размещения ресурсов. Для получения дополнительной информации см. Вводный семинар по AWS CDK: Семинар по Python.
Разверните решение
Когда вы развертываете стек AWS CDK, он создает пять функций Lambda, как показано на следующем снимке экрана.
Стек также создает дополнительные вспомогательные ресурсы в вашей учетной записи.
Ассоциация granular_user_governance
функция запускается Amazon CloudWatch правило события qs-gc-everyhour
. Информация о группах и пользователях определяется в файле membership.csv
. Имя корзины S3 хранится в хранилище параметров. /qs/config/groups
. На следующей диаграмме показана блок-схема этой функции.
- Установите пункт назначения
granular_user_governance
к другой функции Lambda,downgrade_user
призываютsource=Asynchronous invocation
иcondition=On Success
.
Следующая диаграмма представляет собой блок-схему этой функции.
Чтобы избежать нарушения критического доступа к ресурсам QuickSight, которым управляет администратор или автор, мы понижаем роль администратора или автора, удаляя пользователя-администратора или автора и создавая нового пользователя-читателя с помощью функции Lambda. downgrade_user
, granular_user_governance
Функция обрабатывает понижение статуса администратора до автора или повышение статуса автора до администратора.
- Установите пункт назначения
downgrade_user
к лямбда-функцииgranular_access_assets_govenance
source=Asynchronous invocation
иcondition=On Success
.
На следующей диаграмме показана блок-схема этой функции.
- Установите пункт назначения
downgrade_user
к лямбда-функцииcheck_team_members
source=Asynchronous invocation
иcondition=On Failure
.
Ассоциация check_team_members
Функция просто вызывает API-интерфейсы QuickSight для получения информации о пространствах имен, группах, пользователях и ресурсах и сохраняет результаты в корзине S3. Клавиша S3 monitoring/quicksight/group_membership/group_membership.csv
и monitoring/quicksight/object_access/object_access.csv
.
Помимо двух выходных файлов предыдущего шага, журналы ошибок и журналы удаления пользователей (журналы downgrade_user
) также сохраняются в monitoring/quicksight
папку.
- Установите пункт назначения
granular_access_assets_govenance
к лямбда-функцииcheck_team_members
source=Asynchronous invocation
иcondition=On Success
orcondition=On Failure
.
Создание наборов данных безопасности на уровне строк
На последнем этапе мы создаем наборы данных RLS. Это позволяет вам изменять записи информационной панели в зависимости от пользователей, которые просматривают информационные панели.
QuickSight поддерживает RLS, применяя набор данных, управляемый системой, который выбирает записи из набора данных информационной панели. Этот механизм позволяет администратору предоставить набор данных фильтрации (набор данных RLS) с username
or groupname
столбцы, которые автоматически фильтруются по пользователю, вошедшему в систему. Например, пользователь с именем YingWang
принадлежит группе QuickSight BI
, поэтому все строки набора данных RLS, соответствующие имени пользователя YingWang
или название группы BI
фильтруются. Строки, которые остаются в RLS после применения фильтров имени пользователя и имени группы, затем используются для дальнейшей фильтрации наборов данных информационной панели путем сопоставления столбцов с одинаковыми именами. Дополнительные сведения о безопасности на уровне строк см. Использование безопасности на уровне строк (RLS) для ограничения доступа к набору данных.
В этом решении мы экспортируем образец информации о пользователе в файл. membership.csv
, который хранится в корзине S3. В этом файле мы предоставляем несколько образцов групп для определения набора данных RLS. Эти группы представляют собой группы сегментов данных, как описано в общем проекте архитектуры. На следующем снимке экрана показаны некоторые группы и пользователи в этих группах.
Ассоциация granular_user_governance
Функция создает эти группы и добавляет связанных пользователей в члены этих групп.
Как нам создать набор данных RLS? Допустим, у нас есть таблица под названием employee_information
в базе данных кадровой службы нашей организации. На следующем снимке экрана показаны некоторые примеры данных.
На основе employee_information
таблицу, мы создаем представление под названием rls
для набора данных RLS. См. следующий код SQL:
На следующем снимке экрана показаны наши образцы данных.
Теперь у нас есть готовая таблица, и мы можем создать набор данных RLS с помощью следующего пользовательского SQL:
На следующем снимке экрана показаны наши образцы данных.
Для группы quicksight-fed-all-countries
, мы установили username
, country
качества city
имеет значение null, что означает, что все пользователи в этой группе могут просматривать данные всех стран.
На уровне страны применяются только правила безопасности, определенные в groupname
и страна columns
используются для фильтрации. username
и city
столбцы установлены как нулевые. Пользователи в quicksight-fed-usa
группа может просматривать данные США, а пользователи в quicksight-fed-gbr
группа может просматривать данные GBR.
Для каждого пользователя с groupname
если установлено значение null, они смогут просматривать только конкретную страну и город, назначенные их имени пользователя. Например, TerryRigaud
можно просматривать данные только по Остину в США.
В QuickSight несколько правил в наборе данных RLS объединяются с помощью OR.
С помощью этих многогранных правил RLS мы можем определить комплексную схему доступа к данным.
Убирать
Чтобы избежать будущих расходов, удалите созданные вами ресурсы, выполнив следующую команду:
Заключение
В этом посте обсуждалось, как администраторы BI могут спроектировать и автоматизировать детальный контроль доступа к аутентификации и авторизации QuickSight. Мы объединили функции безопасности QuickSight, такие как безопасность на уровне строк и столбцов, группы и пространства имен, чтобы предоставить комплексное решение. Управление этими изменениями с помощью «BIOps» обеспечивает надежный и масштабируемый механизм управления безопасностью QuickSight. Узнать больше, зарегистрируйтесь для получения демо-версии QuickSight.
Об авторах
Инь Ван — старший инженер по визуализации данных глобальной специализированной практики по данным и аналитике в сфере профессиональных услуг AWS.
Амир Бар Ор — главный архитектор данных в AWS Professional Services. После 20 лет работы в сфере разработки программного обеспечения и разработки платформ и продуктов для анализа данных он теперь делится своим опытом с крупными корпоративными клиентами и помогает им масштабировать аналитику данных в облаке.
- "
- &
- 100
- доступ
- управление доступом
- Учетная запись
- активно
- Ad
- дополнительный
- Администратор
- Все
- Amazon
- анализ
- аналитика
- API
- Применение
- Приложения
- архитектура
- активы
- Активы
- Остин
- Аутентификация
- разрешение
- автоматизация
- AWS
- AWS Lambda
- ЛУЧШЕЕ
- лучшие практики
- граница
- строить
- Строительство
- бизнес
- бизнес-аналитика
- призывают
- случаев
- изменение
- расходы
- Город
- классификация
- облако
- код
- Общий
- Компания
- содержание
- страны
- Создающий
- Клиенты
- приборная панель
- данным
- доступ к данным
- Анализ данных
- управление данными
- визуализация данных
- База данных
- базы данных
- Спрос
- Проект
- уничтожить
- подробность
- застройщиков
- Разработка
- DevOps
- доменов
- инженер
- Предприятие
- корпоративные клиенты
- События
- События
- исполнительный
- экспорт
- Особенности
- фильтры
- First
- Впервые
- соответствовать
- Рамки
- функция
- будущее
- Глобальный
- гранты
- группы
- Как
- hr
- HTTPS
- Сотни
- IAM
- Личность
- В том числе
- доход
- Увеличение
- информация
- Инфраструктура
- интеграции.
- Интеллекта
- IT
- работа
- присоединиться
- Основные
- знания
- целевую страницу
- большой
- LDAP
- ведущий
- УЧИТЬСЯ
- уровень
- Библиотека
- Ограниченный
- линия
- Список
- расположение
- Длинное
- управление
- Участники
- имена
- номера
- заказ
- Другие контрактные услуги
- Другое
- владелец
- пароли
- шаблон
- PII
- Платформы
- политика
- Основной
- Продукт
- Продукция
- Проект
- проектов
- что такое варган?
- Питон
- читатель
- читатели
- учет
- уменьшить
- Регистрация
- Отношения
- Отчеты
- Требования
- Полезные ресурсы
- Итоги
- обзоре
- Снижение
- условиями,
- Run
- Бег
- главная
- Шкала
- безопасность
- Самообслуживание
- Услуги
- набор
- Поделиться
- Акции
- Оболочка
- просто
- So
- Соцсети
- Software
- SQL
- диск
- магазин
- поддержка
- Поддержка
- системы
- время
- Uk
- союз
- Обновление ПО
- Updates
- us
- США
- пользователей
- Вид
- визуализация
- еженедельно
- Колесо
- КТО
- в
- рабочий
- лет