AWS CloudFormation获取LaunchTemplate的LatestVersionNumber所需IAM权限
问题根因
当CloudFormation执行模板中的!GetAtt ECSLaunchTemplate.LatestVersionNumber逻辑时,需要调用EC2服务的ec2:DescribeLaunchTemplates接口查询启动模板的版本属性,你当前为CloudFormation配置的IAM角色缺少该权限,因此触发403未授权报错。
最小权限IAM策略示例
你可以给CloudFormation的扮演角色添加如下IAM策略,完全符合最小权限原则:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeLaunchTemplates", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "<替换为你的AWS账号ID>" } } } ] }
权限优化说明
- 如果你需要进一步缩小权限范围,可以把
Resource字段的值替换为你的LaunchTemplate对应的ARN格式:arn:aws:ec2:<替换为资源所在区域>:<替换为你的AWS账号ID>:launch-template/<替换为启动模板ID>,避免权限覆盖到账号内所有启动模板 - 注意
ec2:DescribeLaunchTemplates属于EC2的列表类操作,部分AWS区域下该操作不支持资源级权限限制,这种场景保留Resource: "*"加账号ID的条件限制即可实现最小权限控制
内容的提问来源于stack exchange,提问作者maslick
相关产品推荐
相关产品推荐

