首页 > 解决方案 > 如何获取/设置 AWS ECS 容器实例角色

问题描述

在 AWS 控制台中创建基于 EC2 的 ECS 集群时,您可以指定容器实例角色:

在此处输入图像描述

但是,在创建集群后,我看不到任何方法可以查看附加到集群的角色。

此外,在使用cli或在Cloudformation(或扩展为 CDK)中创建集群时,我看不到任何指定容器实例角色的方法。

我的问题有两个:

  1. 能否在 API/Cloudformation 中指定此属性
  2. 有没有办法在控制台或使用 API/CLI 来查看现有集群上的这个属性

标签: amazon-web-servicesamazon-cloudformationamazon-ecsaws-cdk

解决方案


控制台让您相信它是一个 ECS 属性,但实际上它只是一个称为“IAM Instance Profile”的 EC2 属性。您必须通过在可在 AutoScaling 组内使用的资源上设置IamInstanceProfile 属性来指定此角色,AWS::EC2::Instance甚至更好。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
      ...

推荐阅读