【问题标题】:How to get/set AWS ECS container instance role如何获取/设置 AWS ECS 容器实例角色
【发布时间】:2021-04-02 13:42:03
【问题描述】:
在 AWS 控制台中创建基于 EC2 的 ECS 集群时,您可以指定容器实例角色:
但是,在创建集群后,我看不到任何方法可以查看附加到集群的角色。
此外,在使用cli 或Cloudformation(或扩展为CDK)创建集群时,我看不到任何指定容器实例角色的方法。
我的问题有两个:
- 能否在 API/Cloudformation 中指定此属性
- 有没有办法在控制台或使用 API/CLI 来查看现有集群上的此属性
【问题讨论】:
标签:
amazon-web-services
amazon-cloudformation
amazon-ecs
aws-cdk
【解决方案1】:
控制台让您相信它是一个 ECS 属性,但实际上它只是一个称为“IAM 实例配置文件”的 EC2 属性。您必须通过在 AWS::EC2::Instance 上设置 IamInstanceProfile property 来指定此角色,或者在可在 AutoScaling 组内使用的 AWS::EC2::LaunchTemplate 资源上设置更好。小警告,您还不能直接将角色添加到该属性,您需要先创建一个AWS::IAM::InstanceProfile,如下所示:
EcsInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Roles:
- ecsInstanceRole
为了完整起见,下面是在启动模板中设置属性的方法:
LaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateData:
IamInstanceProfile:
Arn: !GetAtt EcsInstanceProfile.Arn
...