Великий проект бізнес-аналітики (BI) із багатьма користувачами та командами та конфіденційною інформацією вимагає багатогранної архітектури безпеки. Така архітектура повинна надавати адміністраторам і архітекторам BI можливість мінімізувати обсяг інформації, доступної користувачам. Для простого рішення для керування Amazon QuickSight дозволи на доступ користувачів і активів, ви можете використовувати Інтерфейс командного рядка AWS (AWS CLI) або Консоль управління AWS щоб вручну редагувати роль користувача QuickSight і доступ до інформаційної панелі. Однак у певних випадках підприємство може легко мати сотні чи тисячі користувачів і груп, і ці методи керування доступом неефективні. Ми отримали велику кількість запитів щодо розширеного програмованого підходу до розгортання та керування централізованою архітектурою безпеки QuickSight.
У цьому дописі описано найкращі методи детального керування доступом автентифікації та авторизації QuickSight, а також надано централізовану хмарну програму з Набір хмарних розробок AWS (AWS CDK) стек для завантаження. Одна з переваг нашого рішення полягає в тому, що підприємства можуть розгортати інфраструктуру безпеки для адміністрування контролю доступу до своєї BI, не виходячи з AWS.
Усі конфігурації зберігаються в Зберігання параметрів AWS Systems Manager. Parameter Store забезпечує безпечне ієрархічне зберігання для керування даними конфігурації та управління секретами. Ви можете зберігати такі дані, як ім’я користувача, дозволи користувача, паролі та рядки бази даних як значення параметрів. Ви можете посилатися Менеджер систем AWS параметрів у ваших сценаріях і робочих процесах конфігурації та автоматизації за допомогою унікального імені, яке ви вказали під час створення параметра.
Шаблон програми AWS CDK вписується в інфраструктуру постійної інтеграції та безперервного розгортання (CI/CD) і надає або скасовує всі автентифікації та авторизації на основі визначеної політики, встановленої AWS. Це дозволяє уникнути можливих людських помилок розробників або адміністраторів BI. Розробники BI можуть редагувати параметри конфігурації, щоб випускати нові інформаційні панелі для кінцевих користувачів. У той же час адміністратори BI можуть редагувати інший набір параметрів для керування користувачами або групами. Цей дизайн AWS CDK CI/CD усуває розриви між розробкою та експлуатацією, забезпечуючи автоматизацію створення та розгортання програм BI.
Вимоги безпеки
У розробці корпоративних додатків BI мультитенантність є поширеним випадком використання, який обслуговує кілька груп користувачів за допомогою однієї інфраструктури. Орендарями можуть бути або різні клієнти незалежного постачальника програмного забезпечення (ISV), або різні відділи підприємства. У дизайні з декількома орендарями кожен орендар спільно використовує інформаційні панелі, аналізи та інші ресурси QuickSight. Кожен користувач, який може бачити всіх інших користувачів, що належать до того самого орендаря (наприклад, під час спільного використання вмісту), залишається невидимим для інших орендарів. У кожному клієнті команда адміністраторів BI має створити різні групи користувачів, щоб контролювати авторизацію даних, зокрема дозволи на доступ до активів і доступ до даних на детальному рівні.
Давайте детально обговоримо деякі випадки використання дозволів на доступ до активів. У додатку BI різні активи зазвичай класифікуються відповідно до бізнес-доменів (наприклад, операційна інформаційна панель або інформаційна панель виконавчих зведень) і класифікації даних (критичні, суворо конфіденційні, лише внутрішні та загальнодоступні). Наприклад, ви можете мати дві інформаційні панелі для аналізу даних про результати продажів. Зовнішній вигляд обох інформаційних панелей схожий, але класифікація безпеки даних відрізняється. Одна інформаційна панель під назвою Sales Critical Dashboard містить важливі стовпці та рядки даних. Інша інформаційна панель під назвою Sales Highly-Confidential Dashboard містить дуже конфіденційні стовпці та рядки даних. Деяким користувачам надано дозвіл переглядати обидві інформаційні панелі, а інші мають нижчий рівень безпеки та можуть отримати доступ лише до висококонфіденційної інформаційної панелі продажів.
У наведеному нижче випадку використання ми розглядаємо доступ до даних на детальному рівні наступним чином:
- Доступ на рівні рядка (RLS) – Для користувачів, які мають доступ до критичної інформаційної панелі продажів, деякі з них можуть переглядати лише дані США. Однак деякі глобальні користувачі можуть переглядати дані всіх країн, включаючи США та Великобританію.
- Доступ на рівні стовпців (CLS) – Деякі користувачі можуть переглядати лише стовпці даних, що не ідентифікують особу (PII) у наборі даних, тоді як команда відділу кадрів може переглядати всі стовпці того самого набору даних.
Великі проекти можуть мати кілька орендарів, сотні груп і тисячі користувачів в одному обліковому записі QuickSight. Команда керівників даних хоче розгорнути один протокол для створення та автентифікації користувачів, щоб зменшити витрати на обслуговування та ризик безпеки. Архітектура та робочий процес, описані в цій публікації, допомагають лідеру обробки даних досягти цієї мети.
Крім того, щоб уникнути людських помилок у щоденній роботі, ми хочемо, щоб ці дозволи безпеки надавалися та скасовувалися автоматично та вписувалися в інфраструктуру CI/CD. Деталі пояснюються далі в цій публікації.
Огляд архітектури
На наступній діаграмі показано архітектуру облікового запису QuickSight цього рішення.
- Автори створюють інформаційні панелі та оновлюють AWS Systems Manager Parameter Store, щоб випускати інформаційні панелі для різних груп
- Адміністратори затверджують запити від авторів
- Адміністратори оновлюють керування користувачами (ролі, простір імен) шляхом редагування AWS Systems ManagerParameter Store
- 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.
- Відповідно до зіставлення простору імен групи в membership.csv функція AWS Lambda створює групи QuickSight у вказаному просторі імен.
- Приклади параметрів прав доступу до об’єктів і сегментів даних:
- Приклади параметрів ролі користувача QuickSight:
- Зразок даних membership.csv:
У цьому рішенні користувацькі простори імен розгортаються для підтримки кількох орендарів. The default
простір імен призначений для всіх внутрішніх користувачів компанії (ми називаємо це OkTank). OkTank створює 3rd-Party
простір імен для зовнішніх користувачів. Якщо нам потрібно підтримувати більше клієнтів, ми можемо створити більше спеціальних просторів імен. За умовчанням ми обмежені 100 просторами імен на обліковий запис AWS. Щоб збільшити цей ліміт, зверніться до команди продукту QuickSight. Щоб отримати додаткові відомості про багатокористування, див Вбудовуйте багатопрофільну аналітику в додатки за допомогою Amazon QuickSight.
У кожному просторі імен ми створюємо різні типи груп. Наприклад, в default
простір імен, ми створюємо BI-Admin
та BI-Developer
групи для в admin
та author
користувачів. Для reader
, ми розгортаємо два типи груп QuickSight для контролю дозволів на доступ до активів і доступу до даних: групи дозволів на доступ до об’єктів і групи сегментів даних.
У наведеній нижче таблиці підсумовано, як групи дозволів доступу до об’єкта керують дозволами.
Назва групи | Простір імен | дозвіл | примітки |
critical |
дефолт | Перегляд обох інформаційних панелей (що містять критичні дані та дуже конфіденційні дані) | |
highlyconfidential |
дефолт | Переглядайте лише інформаційну панель Sales Highly-Confidential | |
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 |
дефолт | Можна переглядати всі стовпці, включно з ідентифікаційними даними | Стовпчастий рівень |
Ми можемо налаштувати подібні групи в просторах імен не за замовчуванням.
Ці різні групи можуть накладатися одна на одну. Наприклад, якщо користувач належить до груп USA
, Critical
та PII
, вони можуть переглядати дані США на обох інформаційних панелях з усіма стовпцями. Наступна діаграма Венна ілюструє зв’язки між цими групами.
Таким чином, ми можемо визначити багатогранну архітектуру безпеки, поєднуючи функції QuickSight, включаючи простір імен, групу, користувача, RLS і CLS. Усі пов’язані конфігурації зберігаються в сховищі параметрів. Список користувачів QuickSight і інформація про зіставлення груп користувачів знаходяться в Служба простого зберігання Amazon (Amazon S3) у вигляді файлу CSV (названий membership.csv
). Цей файл CSV може бути результатом запитів LDAP. Кілька AWS Lambda функції заплановано на щогодинний запуск (ви також можете викликати ці функції на вимогу, наприклад щодня, щотижня або будь-якої деталізації, яка відповідає вашим вимогам), щоб зчитувати параметри та membership.csv
. Відповідно до визначеної конфігурації функції Lambda створюють, оновлюють або видаляють групи, користувачів і права доступу до активів.
Після завершення необхідних конфігурацій безпеки функція Lambda викликає QuickSight API, щоб отримати оновлену інформацію та записати результати в сегмент S3 як файли CSV. Команда адміністраторів BI може створювати набори даних із цих файлів і візуалізувати результати за допомогою інформаційних панелей. Для отримання додаткової інформації див Використання адміністративних панелей для централізованого перегляду об’єктів Amazon QuickSight та Створення адміністративної консолі в Amazon QuickSight для аналізу показників використання.
Крім того, помилки функцій Lambda та події видалення користувача зберігаються в цьому сегменті S3 для перегляду командою адміністраторів.
Автоматизація
Наступна діаграма ілюструє загальний робочий процес лямбда-функцій.
Ми використовуємо програмований метод для автоматичного створення та налаштування груп і користувачів. Для будь-якого спеціального запиту на реєстрацію користувача (наприклад, користувача не зареєстровано в 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.
Для отримання додаткової інформації див Програмуйте сценарії AWS Glue ETL на Python та Використання бібліотек Python з AWS Glue.
Передумови
Ви повинні мати такі передумови для впровадження цього рішення:
- Обліковий запис QuickSight Enterprise
- Базові знання Python
- Базові знання SQL
- Базові знання BI
Створіть ресурси
Створіть свої ресурси, завантаживши стек AWS CDK із сайту GitHub репо.
У granular_access
папку, виконайте команду cdk deploy granular-access
розгорнути ресурси. Для отримання додаткової інформації див AWS CDK Intro Workshop: Python Workshop.
Розгорніть рішення
Коли ви розгортаєте стек AWS CDK, він створює п’ять функцій Lambda, як показано на наступному знімку екрана.
Стек також створює додаткові допоміжні ресурси у вашому обліковому записі.
Команда granular_user_governance
функція запускається Amazon CloudWatch правило події qs-gc-everyhour
. Інформація про групи та користувачів визначена у файлі membership.csv
. Назва сегмента S3 зберігається в сховищі параметрів /qs/config/groups
. На наступній діаграмі показано блок-схему цієї функції.
- Встановіть пункт призначення
granular_user_governance
до іншої лямбда-функції,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
функція просто викликає QuickSight API, щоб отримати інформацію про простори імен, групи, користувачів і ресурси, і зберігає результати в сегменті 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
використовуються для фільтрації. The username
та city
стовпців встановлено як нульові. Користувачі в quicksight-fed-usa
група може переглядати дані США та користувачів у quicksight-fed-gbr
група може переглядати дані GBR.
Для кожного користувача с groupname
встановлено як null, вони можуть переглядати лише конкретну країну та місто, призначені їхньому імені користувача. Наприклад, TerryRigaud
можна переглядати лише дані Остіна, США.
У QuickSight кілька правил у наборі даних RLS поєднуються разом із OR.
За допомогою цих багатогранних правил RLS ми можемо визначити комплексний шаблон доступу до даних.
Прибирати
Щоб уникнути майбутніх витрат, видаліть ресурси, які ви створили, виконавши таку команду:
Висновок
У цьому дописі обговорювалося, як адміністратори BI можуть розробити та автоматизувати детальний контроль доступу QuickSight для автентифікації та авторизації. Ми поєднали такі функції безпеки QuickSight, як захист на рівні рядків і стовпців, групи та простори імен, щоб забезпечити комплексне рішення. Управління цими змінами через «BIOps» забезпечує надійний, масштабований механізм для керування безпекою QuickSight. Щоб дізнатися більше, підпишіться на демонстрацію QuickSight.
Про авторів
Ін Ван є старшим інженером із візуалізації даних глобальної спеціалізованої практики Data & Analytics в AWS Professional Services.
Амір Бар Ор є головним архітектором даних у AWS Professional Services. Після 20 років роботи в компаніях, що займаються розробкою програмного забезпечення та розробки платформ і продуктів для аналізу даних, тепер він ділиться своїм досвідом із великими корпоративними клієнтами та допомагає їм масштабувати аналітику даних у хмарі.
- "
- &
- 100
- доступ
- управління доступом
- рахунки
- діяльності
- Ad
- Додатковий
- адмін
- ВСІ
- Amazon
- аналіз
- аналітика
- Інтерфейси
- додаток
- застосування
- архітектура
- активи
- Активи
- Остін
- Authentication
- авторизації
- Автоматизація
- AWS
- AWS Lambda
- КРАЩЕ
- передового досвіду
- border
- будувати
- Створюємо
- бізнес
- бізнес-аналітика
- call
- випадків
- зміна
- вантажі
- Місто
- класифікація
- хмара
- код
- загальний
- компанія
- зміст
- країни
- створення
- Клієнти
- приладова панель
- дані
- доступ до даних
- Analytics даних
- управління даними
- візуалізація даних
- Database
- базами даних
- Попит
- дизайн
- знищити
- деталь
- розробників
- розробка
- DevOps
- домени
- інженер
- підприємство
- корпоративні клієнти
- Event
- Події
- виконавчий
- експорт
- риси
- Фільтри
- Перший
- перший раз
- відповідати
- Рамки
- функція
- майбутнє
- Глобальний
- гранти
- Group
- Як
- hr
- HTTPS
- Сотні
- IAM
- Особистість
- У тому числі
- Дохід
- Augmenter
- інформація
- Інфраструктура
- інтеграція
- Інтелект
- IT
- робота
- приєднатися
- ключ
- знання
- цільової сторінки
- великий
- ldap
- провідний
- УЧИТЬСЯ
- рівень
- бібліотека
- обмеженою
- Лінія
- список
- розташування
- Довго
- управління
- члени
- Імена
- номера
- порядок
- Інше
- інші
- власник
- Паролі
- Викрійки
- пій
- Платформи
- політика
- Головний
- Product
- Продукти
- проект
- проектів
- громадськість
- Python
- читач
- читачі
- облік
- зменшити
- Реєстрація
- Відносини
- Звіти
- Вимога
- ресурси
- результати
- огляд
- Risk
- Правила
- прогін
- біг
- продажів
- шкала
- безпеку
- Самообслуговування
- Послуги
- комплект
- Поділитись
- акції
- Склад
- простий
- So
- соціальна
- Софтвер
- SQL
- зберігання
- зберігати
- підтримка
- Опори
- Systems
- час
- Uk
- союз
- Оновити
- Updates
- us
- USA
- користувачі
- вид
- візуалізації
- тижні
- Колесо
- ВООЗ
- в
- робочий
- років