使用IAM策略创建堆栈时,InsufficientCapabilitiesException [CAPABILITY_NAMED_IAM]

时间:2018-03-16 09:12:06

标签: amazon-web-services amazon-cloudformation

当我为包含IAM策略的云信息模板运行create-stack时,我收到此错误。

aws cloudformation create-stack --stack-name iam-stack --template-body file://./iam.yml --capabilities CAPABILITY_IAM --profile dev

调用CreateStack操作时发生错误(InsufficientCapabilitiesException):需要功能:[CAPABILITY_NAMED_IAM]

4 个答案:

答案 0 :(得分:6)

--capabilities更改为CAPABILITY_NAMED_IAM

  

如果您的IAM资源具有自定义名称,则必须指定   CAPABILITY_NAMED_IAM。如果您未指定此参数,请执行此操作   返回InsufficientCapabilities错误。

https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html

答案 1 :(得分:0)

对于我来说,对于类型为“ AWS :: IAM :: Role”的资源,我需要CAPABILITY_IAMCAPABILITY_NAMED_IAM功能。

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudFormation.html#createStack-property

答案 2 :(得分:0)

根据 AWS 文档, 如果您在云形成中指定角色名称,则必须指定 CAPABILITY_NAMED_IAM 值以确认模板的功能 Link

所以你的命令应该是

aws cloudformation create-stack --stack-name iam-stack --template-body file://./iam.yml --capabilities CAPABILITY_NAMED_IAM --profile dev

答案 3 :(得分:0)

如果您使用 AWS CodePipeline 通过 CloudFormation 堆栈部署 EC2,则有一个名为“功能”的选项,您可以从中选择 CAPABILITY_NAMED_IAM。