Блог Amazon Web Services

IAM Access Analyzer облегчает настройку прав доступа с наименьшими привилегиями, генерируя политики IAM, основанные на логах доступа

Оригинал статьи: ссылка (Mathangi Ramesh, Product Manager для AWS Identity and Access Management)

В 2019 году был запущен AWS Identity and Access Management (IAM) Access Analyzer, чтобы помочь вам обнаруживать и удалять непреднамеренно открытый публичный доступ, а также доступ для других аккаунтов AWS, анализируя существующие права доступа. В марте 2021 года к функциональности IAM Access Analyzer была добавлена проверка политик доступа, чтобы помочь вам создавать безопасные и функциональные права доступа. Теперь IAM Access Analyzer делает еще один шаг вперед, предоставляя вам возможность сгенерировать политики доступа. Теперь вы можете использовать IAM Access Analyzer для генерации тонко настроенных политик доступа, основанных на логах вашей активности в AWS CloudTrail. Когда вы запускаете генерацию политики доступа, IAM Access Analyzer приступает к работе и идентифицирует вашу активность по логам CloudTrail для создания политики доступа. Сгенерированная политика предоставляет только необходимые права доступа для ваших рабочих нагрузок и, таким образом, упрощает внедрение прав доступа с наименьшими привилегиями.

Как разработчики, работая в среде разработки, вы начинаете с более широких прав для экспериментов и понимания, какие возможности AWS вам нужны. По мере того, как ваши рабочие нагрузки стабилизируются, вам необходимо ограничить права доступа только для тех сервисов и действий, которые действительно используются. Это гарантирует, что ваши политики доступа будут следовать лучшим практикам безопасности при переносе рабочих нагрузок из среды разработки в производственную среду. Теперь вы можете использовать IAM Access Analyzer для более легкой генерации тонко настроенных политик доступа, которые предоставляют только необходимый доступ. В этой статье я расскажу вам о том, как генерация политик доступа с помощью IAM Access Analyzer работает, а затем расскажу вам о том, как генерировать, настраивать и создавать политики.

Описание

Чтобы сгенерировать политику доступа, зайдите в консоль IAM и перейдите к роли вашего приложения. Оттуда вы запускаете генерацию политики доступа, указав лог CloudTrail и временной диапазон. Затем IAM Access Analyzer анализирует лог CloudTrail для создания политики. После того, как IAM Access Analyzer сгенерирует политику доступа, вы можете воспользоваться ею и настроить её. Для некоторых сервисов IAM Access Analyzer идентифицирует действия, сохранённые в логах CloudTrail, и генерирует политики доступа на уровне действий. IAM Access Analyzer также определяет все используемые сервисы, чтобы дать вам возможность указать требуемые действия. Для дальнейшего уточнения прав доступа IAM Access Analyzer определяет действия, поддерживающие права доступа на уровне ресурсов AWS, и предоставляет вам шаблон. Вы можете указать ARN ресурсов в этом шаблоне для ограничения прав доступа для определенных ресурсов AWS. Это облегчает вам задачу тонкой настройки прав доступа, которые разрешают доступ только к определенным ресурсам. Генерация политик доступа с помощью IAM Access Analyzer доступна без дополнительной оплаты, и вы можете использовать её через консоль IAM или программными средствами, используя CLI и SDK.

Теперь я расскажу вам о том, как можно использовать IAM Access Analyzer через консоль управления IAM и генерировать политики доступа для ваших рабочих нагрузок.

Генерация политики для роли на основе логов активности в AWS CloudTrail

В данном примере, старший разработчик София Мартинес создает оркестратор микросервисов для запуска веб-приложения электронной коммерции на примере компании Example Corp. Ее основной функцией является разработка микросервисов. Для этих микросервисов ей необходимо создать политики IAM, чтобы обеспечить точные права доступа. В связи с предстоящим запуском перед сезоном праздничных распродаж, София завершила разработку и в настоящее время готовится к запуску приложения. В частности, она хочет удостовериться, что приложение имеет только минимально необходимые права доступа. Для этого София использует IAM Access Analyzer для генерации политики и предоставления необходимых прав доступа для роли своего приложения.

Генерация политики доступа в консоли управления AWS

  1. Откройте консоль IAM и в панели навигации выберите Roles.
  2. Выберите роль для анализа. В данном примере София выбирает AWS_Test_Role.
  3. В разделе Generate policy based on CloudTrail events, выберите Generate policy, как показано на изображении 1.

    Изображение 1: Генерация политики на странице детальной информации о роли

  4. На странице Generate policy вы выбираете временной диапазон, в котором IAM Access Analyzer будет анализировать логи CloudTrail для создания политики доступа. В этом примере София тестировала приложение в течение последних 15 дней, поэтому она выбирает этот временной диапазон, как показано на изображении 2.

    Изображение 2: Выбор временного диапазона

  5. Если вы используете эту функцию в первый раз, в разделе CloudTrail access выберите лог, который вы хотите проанализировать с помощью IAM Access Analyzer, выберите Create and use a new service role, затем выберите Generate policy.Если у вас уже есть существующие сервисные роли, вы выбираете Use an existing service role, выбираете роль из доступных вариантов и выбираете Generate policy, как показано на изображении 3. В данном примере, София использует существующую сервисную роль и затем выбирает Generate policy, чтобы начать генерацию политики доступа.

    Изображение 3: Раздел CloudTrail access

  6. После того, как политика доступа будет готова, вы увидите уведомление. Чтобы просмотреть права доступа, выберите View generated policy, как показано на изображении 4.

    Изображение 4: Процесс генерации политики

(Опционально) Настройка политики доступа 

  1. Для некоторых сервисов на странице сгенерированной политики вы можете просмотреть список сервисов и связанных с ними действий в сгенерированной политике. В данном примере София видит, что приложение использовало Amazon Elastic Compute Cloud (Amazon EC2), AWS IAM, AWS Lambda, Amazon Simple Storage Service (Amazon S3), и связанные с ними действия, как показано на изображении 5.

    Изображение 5: Сервисы и связанные с ними действия

  2. Вы также можете посмотреть все используемые сервисы, как показано на рисунке 6, и выбрать права доступа, которые требуются вашему приложению. В этом примере София видит, что ее приложение использует службу Amazon Simple Queue Service (Amazon SQS), и она знает, что ее приложение требует действия SQS:ReceiveMessage и SQS:SendMessage. Она выбирает действие из выпадающего списка. На изображении 6 показан шаблон политики, который помогает Софии задать необходимые права доступа.

    Изображение 6: Добавление дополнительных действий для используемых сервисов

  3. Далее вы просматриваете созданную политику и указываете права доступа на уровне ресурсов AWS, заменяя метки-заполнители (placeholders) на ARN ресурсов, используемых вашим приложением. Метки-заполнители позволяют вам легче тонко настроить права доступа, которые разрешают доступ только к определенным ресурсам AWS. Это помогает вам следовать лучшим практикам безопасности и позволяет вам указывать конкретные ресурсы AWS, к которым вы хотите предоставить доступ, тем самым разрешая доступ только к подмножеству ресурсов AWS.В этом примере София обращает внимание на то, что действие EC2:RunInstances применяется к определённым ресурсам, поэтому она заменяет метку-заполнитель на ARN инстанса, чем разрешает доступ только к конкретному инстансу, используемому приложением, как показано на изображении 7.

    Изображение 7: Настройка прав доступа политики

  4. На странице настройки сгенерированной политики доступа после того, как вы закончили настраивать политику, выберите опцию Next, чтобы еще раз взглянуть на политику.

Создание и использование политики доступа

  1. На странице Review and create as a customer managed policy выберите название политики в соответствии с лучшими практиками вашей компании, а также просмотрите краткий обзор прав доступа. Опционально, вы можете добавить описание, чтобы описать назначение политики доступа. В этом примере София называет свою политику и добавляет описание, как показано на рисунке 8.

    Изображение 8: Просмотр и создание политики

  2. Выберите Create and attach, чтобы добавить политику к роли приложения.

После создания роли София может удалить любые другие политики, добавленные к роли, и продолжить работу с более тонко настроенными правами доступа.

Генерация и просмотр политик программными средствами

Вы можете использовать следующие IAM Access Analyzer API для генерации политик и последующего получения информации о них:

  • start-policy-generation: Генерирует политику для пользователя или роли IAM. Вызовите этот API чтобы запустить генерацию политики. Укажите временной интервал, который должен быть проанализирован IAM Access Analyzer в логах CloudTrail.
  • get-generated-policy: Вызовите этот API для получения информации о сгенерированной политики.

Для получения дополнительной информации, ознакомьтесь с Generate policies based on access activity в пользовательской документации по AWS IAM.

Заключение

IAM Access Analyzer облегчает предоставление тонко настроенных прав доступа для ваших ролей приложений, генерируя политики доступа IAM на основе вашей активности в логах CloudTrail. Подробнее о том, как генерировать политики, см. в разделе Generate policies based based based by access activity в пользовательской документации по AWS IAM.