В настоящее время я разрабатываю и запускаю относительно простой стек облачной информации. Просто некоторые простые вещи RDS, запускаемые через внешнюю службу CI + CD.
Однако мой текущий цикл разработки невероятно неэффективен просто потому, что я не понимаю, какие разрешения IAM должны быть для Непрерывная интеграция Я создал группу IAM.
Я попробую запустить развертывание шаблона Cloudformation, только чтобы получить некоторую ошибку при настройке чего-либо и начать откат. Откат завершится неудачно, потому что для удаления того, что удалось создать, требуется другое разрешение. Я добавляю два обнаруженных мной новых разрешения, удаляю стек, потому что он находится в ROLLBACK_FAILED
состояние и попробуйте еще раз.
Я могу просто указать все разрешения для всех необходимых мне сервисов, но это не лучшая практика при передаче некоторых учетных данных AWS внешнему сервису.
Из-за этого. Есть ли способ узнать, какие разрешения IAM мне конкретно нужно настроить на основе шаблона облачной информации? В качестве альтернативы, существует ли список разрешений IAM, ожидаемых для каждого ресурса Cloudformation? Я слишком педантичен, пытаясь ограничить как можно больше разрешений? Или я навсегда обречен на эту пробную настройку разрешений IAM?
Для этого есть способ, который мне нравится. Это:
это eventName
точно соответствует именам вызовов API из boto3 и действиям в политиках IAM для соответствующего разрешения. Таким образом, вы будете знать все шаги, которые необходимо сделать, чтобы создать определенный тип ресурса.
Далее вам нужно только запомнить и понять сами действия CloudFormation и все.
У меня сам был точно такой же вопрос, но я не мог найти ответ, который хотел.
Вместо этого я нарисовал диаграмму, которая содержит все соответствующие части, обдумывая каждую часть с точки зрения:
- What does it need to do?
- Which resources does it touch/manage?
Затем для каждой части диаграммы я составил список доступа к IAM, который, как я думал, потребуется, и написал конкретную политику, содержащую все, что может потребоваться.
Затем я воспроизвел создание стека CloudFormation, и у меня все еще пропущены некоторые разрешения, но в основном это уже охвачено созданной мной политикой.
Надеюсь, мой ответ вам поможет.