在 AWS::AutoScaling::AutoScalingGroup 中检索 LaunchTemplate 的 LatestVersionNumber 属性的 IAM 权限
IAM permission to retrieve LaunchTemplate's LatestVersionNumber attribute in AWS::AutoScaling::AutoScalingGroup
在开发 CloudFormation 模板时,我遵循最小权限原则。因此,我为 CloudFormation 提供了一个可以承担的角色,并且具有最少的权限集。
该模板包含基于 AWS::EC2::LaunchTemplate
:
的 AWS::AutoScaling::AutoScalingGroup
ECSAutoScalingGroup:
DependsOn: ECSCluster
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
VPCZoneIdentifier: !Ref Subnets
LaunchTemplate:
LaunchTemplateId: !Ref ECSLaunchTemplate
Version: !GetAtt ECSLaunchTemplate.LatestVersionNumber
MinSize: 1
MaxSize: 2
DesiredCapacity: 1
...
ECSLaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Metadata:
AWS::CloudFormation::Init:
...
Properties:
LaunchTemplateName: test-template
LaunchTemplateData:
...
当我使用此模板创建 CloudFormation 堆栈时,ECSAutoScalingGroup
资源出现以下错误:
Failed to retrieve attribute [LatestVersionNumber] for resource
[ECSLaunchTemplate]: You are not authorized to perform this operation.
(Service: AmazonEC2; Status Code: 403; Error Code:
UnauthorizedOperation; Request ID:
e0f01fd0-ee2a-4260-94f4-3c65177d05ee; Proxy: null)
我应该将哪个 IAM 策略添加到 CloudFormation 承担的 IAM 角色?显然,如果我给它 AdministratorAccess
,它就会成功。但是,我想遵循最小特权原则。
有什么想法吗?
谢谢。
在这里回答我自己的问题。应该将这 2 个操作添加到他们的 IAM 角色策略中:
- ec2:DescribeLaunchTemplates
- ec2:DescribeLaunchTemplateVersions
在开发 CloudFormation 模板时,我遵循最小权限原则。因此,我为 CloudFormation 提供了一个可以承担的角色,并且具有最少的权限集。
该模板包含基于 AWS::EC2::LaunchTemplate
:
AWS::AutoScaling::AutoScalingGroup
ECSAutoScalingGroup:
DependsOn: ECSCluster
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
VPCZoneIdentifier: !Ref Subnets
LaunchTemplate:
LaunchTemplateId: !Ref ECSLaunchTemplate
Version: !GetAtt ECSLaunchTemplate.LatestVersionNumber
MinSize: 1
MaxSize: 2
DesiredCapacity: 1
...
ECSLaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Metadata:
AWS::CloudFormation::Init:
...
Properties:
LaunchTemplateName: test-template
LaunchTemplateData:
...
当我使用此模板创建 CloudFormation 堆栈时,ECSAutoScalingGroup
资源出现以下错误:
Failed to retrieve attribute [LatestVersionNumber] for resource [ECSLaunchTemplate]: You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: e0f01fd0-ee2a-4260-94f4-3c65177d05ee; Proxy: null)
我应该将哪个 IAM 策略添加到 CloudFormation 承担的 IAM 角色?显然,如果我给它 AdministratorAccess
,它就会成功。但是,我想遵循最小特权原则。
有什么想法吗? 谢谢。
在这里回答我自己的问题。应该将这 2 个操作添加到他们的 IAM 角色策略中:
- ec2:DescribeLaunchTemplates
- ec2:DescribeLaunchTemplateVersions