Я создаю TemplateURL динамически.
"TemplateURL" : { "Fn::Join" : ["", [ { "Ref" : "TemplateURL"}, "substack.template" ]] }
Я использую шаблон CloudFormation в консоли AWS.
Я начал с шаблона, который использовал ресурсы IAM, и консоль предлагает мне подтвердить возможности IAM при прямом запуске стека.
Затем я попытался вызвать тот же стек из родительского стека и не получил того же запроса.
Затем произошел сбой стека с сообщением:
Требуются возможности: [CAPABILITY_IAM]
В документации указано, что я могу запускать сценарии CF несколькими способами. Существует множество документов по CLI / API и предоставлению параметра возможности, но, похоже, нет информации о том, как убедиться, что он применяется при запуске через консоль.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
Ресурсы IAM в шаблонах AWS CloudFormation
Я поднял вопрос на форуме, но ответа (пока) нет: https://forums.aws.amazon.com/thread.jspa?threadID=139160
Я подозреваю, что это ошибка в консоли, поскольку, похоже, нет документации о том, как изменить поведение через консоль, и, насколько мне известно, это должно работать.
Кто-нибудь сталкивался с такой же проблемой или может сообщить, что у них все работает нормально?
Я только что столкнулся с этой проблемой, моя проблема заключалась в том, что я не установил флажок «Я подтверждаю, что этот шаблон может заставить AWS CloudFormation создавать ресурсы IAM». на последнем экране перед обновлением моего стека.
Если вы используете CLI или бото, вы можете включить параметр «возможности». Это займет список, но сейчас единственная принятая запись - «CAPABILITY_IAM».
cf.update_stack(..., capabilities=['CAPABILITY_IAM'])
или
cf.create_stack(..., capabilities=['CAPABILITY_IAM'])
Это предоставляет разрешения на создание IAM для всего стека.
При динамическом построении TemplateURL программа проверки валидации не может заранее увидеть, есть ли ресурсы IAM, и поэтому она не запрашивает IAM_CAPABILITIES.
Лучшим решением этой проблемы (прямо сейчас) было бы создание фиктивного ресурса IAM в главном шаблоне для получения приглашения.