Назад | Перейти на главную страницу

Определение требований к IAM для Cloudformation Stack

В настоящее время я разрабатываю и запускаю относительно простой стек облачной информации. Просто некоторые простые вещи RDS, запускаемые через внешнюю службу CI + CD.

Однако мой текущий цикл разработки невероятно неэффективен просто потому, что я не понимаю, какие разрешения IAM должны быть для Непрерывная интеграция Я создал группу IAM.

Я попробую запустить развертывание шаблона Cloudformation, только чтобы получить некоторую ошибку при настройке чего-либо и начать откат. Откат завершится неудачно, потому что для удаления того, что удалось создать, требуется другое разрешение. Я добавляю два обнаруженных мной новых разрешения, удаляю стек, потому что он находится в ROLLBACK_FAILED состояние и попробуйте еще раз.

Я могу просто указать все разрешения для всех необходимых мне сервисов, но это не лучшая практика при передаче некоторых учетных данных AWS внешнему сервису.

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

Для этого есть способ, который мне нравится. Это:

  1. Войти с конкретным тестовым пользователем
  2. Создайте ресурсы вручную из консоли с помощью этого пользователя
  3. Перейдите в CloudTrail и просмотрите историю событий, а также значения параметра eventName.

это eventName точно соответствует именам вызовов API из boto3 и действиям в политиках IAM для соответствующего разрешения. Таким образом, вы будете знать все шаги, которые необходимо сделать, чтобы создать определенный тип ресурса.

Далее вам нужно только запомнить и понять сами действия CloudFormation и все.

У меня сам был точно такой же вопрос, но я не мог найти ответ, который хотел.

Вместо этого я нарисовал диаграмму, которая содержит все соответствующие части, обдумывая каждую часть с точки зрения:

- What does it need to do?
- Which resources does it touch/manage?

Затем для каждой части диаграммы я составил список доступа к IAM, который, как я думал, потребуется, и написал конкретную политику, содержащую все, что может потребоваться.

Затем я воспроизвел создание стека CloudFormation, и у меня все еще пропущены некоторые разрешения, но в основном это уже охвачено созданной мной политикой.

Надеюсь, мой ответ вам поможет.