Безопасность

AWS показала четыре способа автоматизировать права пользователей Amazon Quick

Новые и существующие учётные записи можно ограничивать при регистрации, через defaults уровня account или role, по событиям CloudTrail либо пакетным скриптом. AWS рекомендует начинать с самого строгого baseline и только затем добавлять групповую логику.

AWS показала четыре способа автоматизировать права пользователей Amazon Quick

Custom permissions дополняют роли точечными запретами

AWS описала четыре архитектурных шаблона для автоматического назначения custom permissions в Amazon Quick. Этот механизм позволяет включать и выключать отдельные возможности для конкретного пользователя: например, разрешить аналитику создавать отчёты, но запретить экспорт исходных данных, либо оставить внешнему партнёру просмотр dashboard без управления sharing. Цель — сохранить least privilege по мере роста среды и появления новых AI-функций.

Custom permissions не заменяют базовую роль Reader, Author или Admin, а накладываются поверх неё. В Quick действует иерархия из трёх уровней: user-level настройка имеет приоритет над role-level, а role-level — над account-level. Поэтому одинаковая базовая роль ещё не означает одинаковый набор действий: организация может задать безопасный общий профиль, а затем точечно расширять или сужать его для отдельных групп и пользователей.

Первый путь назначает профиль прямо при регистрации

Если организация сама контролирует создание учётных записей через портал или скрипт, профиль можно указать в вызове `RegisterUser`. Для AWS CLI это параметр `--custom-permissions-name`. Такой вариант не требует EventBridge или Lambda: ограничение появляется одновременно с пользователем, поэтому между provisioning и применением policy нет отдельного временного окна.

AWS приводит пример SaaS-сервиса, который связывает доступ к paginated reports и GenBI с тарифом клиента. Один и тот же API применим к Author, Author Pro, Admin, Admin Pro, Reader и Reader Pro. Практическое условие этого шаблона — единая контролируемая точка onboarding: если часть пользователей создаётся через другой путь, рассчитывать только на параметр `RegisterUser` уже нельзя.

Defaults уровня account и role создают baseline

Для общей политики Quick предоставляет `UpdateAccountCustomPermission` и `UpdateRoleCustomPermission`. Account-level profile становится fallback для пользователя без более явной настройки, включая учётные записи, появившиеся через Just-In-Time provisioning. Role-level default позволяет назначить отдельный профиль каждой роли и namespace. Оба варианта распространяются на текущих и будущих пользователей без собственного event-driven контура.

AWS советует начинать именно с этих defaults, прежде чем строить дополнительную автоматизацию. Например, организация может по умолчанию блокировать новые GenBI-функции и connectors до окончания security review, а исключения выдавать позднее. Такой порядок принципиален: безопасное состояние возникает сразу, а не после того, как внешний workflow заметит событие, определит группу и успеет обновить пользователя.

EventBridge и Lambda добавляют правила по группам

Когда одного профиля на роль недостаточно, AWS предлагает реагировать на изменение membership в группах Quick или AWS IAM Identity Center. CloudTrail фиксирует `CreateGroupMembership` и `DeleteGroupMembership` для Quick, а также `AddMemberToGroup` и `RemoveMemberFromGroup` для Identity Center. EventBridge фильтрует эти события, после чего Lambda определяет пользователя и вызывает `UpdateUserCustomPermission` либо снимает назначенный профиль.

В опубликованной схеме администратор заранее задаёт target group и permission profile. Lambda получает событие, разрешает group ID и user ID в читаемые имена, проверяет совпадение с целевой группой и обновляет пользователя. Для Identity Center предусмотрены повторные попытки `DescribeUser`, поскольку синхронизация с Quick может завершиться не мгновенно. AWS рекомендует сочетать этот workflow с restrictive account- или role-level baseline, а не считать их альтернативами.

Без baseline остаётся provisioning gap

Групповое событие срабатывает только после добавления пользователя в нужную группу. Между созданием учётной записи и этим действием остаётся окно, в котором user-level override ещё отсутствует. AWS прямо называет его unavoidable для Just-In-Time federation и предлагает закрывать самым строгим приемлемым default profile. После назначения группы более конкретный user-level профиль автоматически получит приоритет.

Это важнее самой Lambda-функции: event-driven automation не гарантирует least privilege, если её исходное состояние permissive. Надёжный дизайн начинается с безопасного fallback, затем добавляет исключения и проверяет, что удаление пользователя из группы действительно снимает соответствующий override. Логи CloudTrail, правила EventBridge и права execution role становятся частью authorization boundary и требуют такого же контроля, как конфигурация Quick.

Batch script закрывает уже накопленный долг

Четвёртый шаблон предназначен для пользователей, созданных до внедрения automation. Python-скрипт перечисляет участников заданной Quick group, вызывает `UpdateUserCustomPermission` для каждого, считает успешные и неуспешные операции и сохраняет failures в CSV. AWS рекомендует небольшую задержку между запросами и увеличение интервала для групп более чем из 10 000 участников при появлении `ThrottlingException`.

Пакетное обновление не создаёт постоянную инфраструктуру, но его результат нужно проверять отдельно. Официальная инструкция предлагает вызвать `describe-user` и подтвердить, что поле `CustomPermissionsName` совпадает с ожидаемым профилем. Для production-процесса к этому стоит добавить неизменяемый список входных участников, повторяемый retry только для failures и итоговую сверку количества найденных, обновлённых и пропущенных пользователей.

Разрешения automation должны быть уже её возможностей

В примере AWS execution role Lambda получает действия Quick для чтения пользователя, обновления и удаления custom permission, а при интеграции с Identity Center — чтение пользователя и группы. CloudTrail должен быть включён в целевом Region, а stack EventBridge и Lambda развёрнут в том же Region, где работает подписка Quick. Иначе правило не увидит нужные события, даже если сама функция настроена правильно.

Публикация даёт рабочие building blocks, но не превращает шаблон в готовую модель governance для любой компании. До rollout нужно перечислить допустимые profiles, определить владельца каждой группы, проверить конфликтующие overrides, обработку удаления membership и поведение при частичном отказе. Метрика успеха здесь — не выполненная Lambda, а прочитанное обратно состояние каждого пользователя и отсутствие периода с более широкими правами, чем требует его задача.

Четыре шаблона отвечают разным этапам lifecycle

`RegisterUser` подходит контролируемому onboarding, account и role defaults — универсальному baseline, EventBridge с Lambda — условной логике по группам, а batch script — retroactive migration. Их не следует выбирать как взаимоисключающие варианты: зрелая схема может использовать defaults для всех, прямое назначение в одном канале регистрации, события для групповых исключений и периодическую сверку старых записей.

Главный вывод AWS состоит в последовательности: сначала закрыть самый опасный разрыв встроенным default profile, затем автоматизировать более точные назначения. Такой подход отделяет обязательную безопасность от удобства orchestration. Даже если EventBridge задержит событие или Lambda завершится ошибкой, пользователь останется в заранее определённом ограниченном состоянии, а не получит временно полный набор возможностей.

Первоисточники

  1. AWS Machine Learning Blog — Automate user-level custom permissions for Amazon Quick