Amazon QuickSight — сервис бизнес-аналитики от AWS, который позволяет создавать дашборды и отчёты. С ростом числа пользователей и внедрением ИИ-функций, таких как GenBI, задача контроля доступа становится критичной. В ответ AWS опубликовала руководство, описывающее четыре архитектурных паттерна для автоматизации назначения custom permissions — индивидуальных профилей разрешений, которые можно включать или отключать для конкретных пользователей.

Custom permissions в QuickSight позволяют администраторам гибко настраивать доступ: например, финансовые аналитики могут создавать отчёты, но не экспортировать сырые данные, а внешние партнёры — просматривать дашборды без возможности делиться ими. Разрешения можно назначать на уровне аккаунта, роли или пользователя, при этом действует иерархия: настройки пользователя переопределяют настройки роли, а те, в свою очередь, — настройки аккаунта. Это даёт возможность реализовывать многоуровневую политику безопасности.

СценарийПодходКогда использовать
Предрегистрированные пользователиПараметр --custom-permissions-name в RegisterUser APIОрганизация контролирует создание пользователей через портал или скрипт
Дефолтные разрешения аккаунта/ролиUpdateAccountCustomPermission и UpdateRoleCustomPermissionНужно установить базовые правила для всех текущих и будущих пользователей
Событийная логикаAmazon EventBridge и AWS LambdaТребуются условные правила на основе членства в группах
Ретроактивные обновленияPython-скриптСуществующие пользователи, созданные до внедрения автоматизации

Первый паттерн — для предрегистрированных пользователей. Если организация использует собственный портал для создания пользователей через RegisterUser API, можно включить параметр --custom-permissions-name прямо в вызов. Это самый прямой путь, не требующий дополнительной инфраструктуры. Такой подход часто применяют SaaS-компании, которые встраивают QuickSight в свои продукты: например, автоматически ограничивать доступ к премиум-функциям вроде paginated reports и GenBI в зависимости от тарифного плана клиента.

Для предрегистрированных пользователей достаточно параметра --custom-permissions-name в RegisterUser API, что упрощает интеграцию с порталами SaaS.

Event-driven flow where a group membership change captured by CloudTrail triggers an Amazon EventBridge rule and a Lambda function that applies a Quick custom permission profile
Event-driven flow where a group membership change captured by CloudTrail triggers an Amazon EventBridge rule and a Lambda function that applies a Quick custom permission profile · Источник: AWS Machine Learning Blog

Второй паттерн — установка дефолтных разрешений на уровне аккаунта или роли. С помощью API UpdateAccountCustomPermission и UpdateRoleCustomPermission можно задать профиль по умолчанию, который будет применяться ко всем пользователям без явно назначенного профиля, включая новых, созданных через Just-In-Time provisioning. Это особенно полезно для крупных организаций: например, предприятие с 50 000 пользователей может заблокировать новые функции GenBI до завершения проверки службой безопасности, которая может занять 60–90 дней. Уровень аккаунта обеспечивает мгновенное применение ограничений без необходимости автоматизации для каждого пользователя.

Третий паттерн — событийно-управляемая логика. Когда нужны условные правила, выходящие за рамки дефолтов, — например, применение разных профилей в зависимости от членства в группе — используется связка Amazon EventBridge и AWS Lambda. Эти сервисы автоматически обнаруживают новые членства в группах QuickSight или группах AWS IAM Identity Center и динамически назначают разрешения. Это позволяет реализовать сложные сценарии, когда доступ должен меняться в зависимости от роли пользователя в организации.

Четвёртый паттерн — ретроактивные пакетные обновления. Для существующих пользователей, созданных до внедрения автоматизации, AWS предлагает Python-скрипт, который применяет custom permissions ко всем пользователям в указанных группах QuickSight. Это закрывает пробел, когда автоматизация внедряется после того, как часть пользователей уже получила доступ.

Выбор паттерна зависит от конкретных требований. Если организация полностью контролирует процесс создания пользователей, достаточно первого подхода. Если нужно установить базовые правила для всех — второй. Для динамических условий — третий. А для навёрстывания — четвёртый. AWS рекомендует начинать с дефолтов на уровне аккаунта или роли, прежде чем строить сложную автоматизацию, и переходить к событийной логике только при необходимости условных правил.

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