繁体   English   中英

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

[英]InsufficientCapabilitiesException [CAPABILITY_NAMED_IAM] when creating a stack with IAM policies

我在为包含 IAM 策略的 cloudformation 模板运行 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]

--capabilities更改为CAPABILITY_NAMED_IAM

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

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

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

所以你的命令应该是

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

就我而言,对于“AWS::IAM::Role”类型的资源,我需要CAPABILITY_IAMCAPABILITY_NAMED_IAM功能。

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

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

如果您不让 CloudFormation 命名您的 IAM 资源,则必须按以下方式传递功能。 --capabilities CAPABILITY_IAM更改为--capabilities CAPABILITY_NAMED_IAM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM