AWSUtility::CloudFormation::CommandRunner报TerminateInstances无权限如何解决
问题根因
该报错是AWSUtility::CloudFormation::CommandRunner组件的默认执行角色缺少ec2:TerminateInstances权限导致。该组件是AWS官方开源的CloudFormation扩展,已有大量用户在生产环境成功落地使用,你遇到的属于安装后权限配置的常见问题。
可行解决方案
- 第一步:定位组件执行角色
注册脚本运行时会自动创建前缀为AWSUtility-CloudFormation-CommandRunner-ExecutionRole-的IAM角色,直接在IAM控制台搜索关键词即可找到。 - 第二步:补充权限策略
为该角色添加如下内联权限策略,该策略通过标签条件限制仅允许终止组件自身创建的临时EC2实例,不会带来额外安全风险:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:TerminateInstances", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/UsedBy": "AWSUtility-CloudFormation-CommandRunner" } } } ] }
- 第三步(可选,仅账号默认开启EC2终止保护时需要)
额外补充ec2:ModifyInstanceAttribute权限,允许组件临时关闭实例的终止保护设置。
验证方式
权限配置完成后重新部署你提供的CloudFormation模板即可正常运行,执行完成后可以通过Fn::GetAtt: [IopsCalculator, Output]获取命令返回的计算结果2000。
内容的提问来源于stack exchange,提问作者jlo-gmail
相关产品推荐
相关产品推荐

