У меня есть стек CloudFormation, который часто обновляется сценарием (изменение исходных AMI для конфигурации запуска). Я бы хотел, чтобы он был развернут тем же сценарием, выполняемым непривилегированной ролью пользователя / экземпляра. В настоящее время все обновления выполняются администратором с гораздо большим количеством прав, чем необходимо.
Мой первоначальный подход заключался в том, чтобы попытаться потерпеть неудачу, посмотреть в журналах, какие разрешения отсутствуют, и добавить их по одному. Занимает много времени и далеко не продуктивно.
Я думаю, что должен быть способ создать список разрешений на основе шаблона CloudFormation, а также разрешения на обновление самого стека.
Моя вторая мысль - обработать журналы успешного развертывания CloudTrail, чтобы извлечь оттуда действия и ресурсы.
Может быть, уже есть способ сделать это, и я снова: изобретаю колесо?
Вам будет лучше ссылаться на документацию IAM для действий IAM, необходимых для обновления ресурса. Например, обновление ресурса LaunchConfiguration ImageId требует замены ресурса LaunchConfiguration, а затем AutoScalingGroup необходимо обновить новым LaunchConfiguration через UpdateAutoScalingGroup действие.
Я предлагаю напрямую сослаться на документы, потому что сценарий для создания разрешений для шаблона CloudFormation может создать список возможных действий IAM для каждого ресурса, но в этот момент вам все равно нужно посмотреть на список и сказать «для этого ресурса (например, AutoScalingGroup) какие действия я хочу предпринять? "
Я хочу сказать, что прямая ссылка на документацию быстрее, чем метод проб и ошибок, и такая же скорость, как и предлагаемый инструмент.
Однако действительно интересная идея: что может быть быстрее, чем прямая ссылка на документацию, - это расширение редактора, которое отображает возможные действия для типа ресурса, пока вы просматриваете свой шаблон CF. Я недавно работал над таким расширением, вставлю сюда ссылку, если заполню.