Amazon ECS 实例角色 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon ECS 实例角色

Amazon Batch计算环境中有 Amazon ECS 容器实例。他们在本地运行 Amazon ECS 容器代理。Amazon ECS 容器代理将代表您调用Amazon API 操作。因此,运行该代理的容器实例需要一个 IAM 策略和角色,以便这些服务识别该代理属于您。您必须创建 IAM 角色和实例配置文件,以便容器实例在启动时使用。否则,您无法创建计算环境并在其中启动容器实例。此要求适用于使用或不使用亚马逊提供的 Amazon ECS 优化型 AMI 启动的容器实例。有关更多信息,请参阅 Amazon Elastic Contain ic C ontainic Containic Con tainin

在控制台首次运行体验中将自动为您创建 Amazon ECS 实例角色和实例配置文件。但是,您可以按照以下步骤检查您的账户是否已有 Amazon ECS 实例角色和实例配置文件。以下步骤还涵盖了如何附加托管 IAM 策略。

在 IAM 控制台中检查 ecsInstanceRole
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)。

  3. 在角色列表中搜索 ecsInstanceRole。如果该角色不存在,请使用以下步骤创建该角色。

    1. 请选择 Create Role(创建角色)。

    2. 对于 Trusted entity type(可信实体类型),选择 Amazon Web Service

    3. 对于常见用例,请选择 EC2

    4. 选择 Next(下一步)

    5. 有关权限策略,请搜索 AmazoneC2ContainerServicefor EC2Role

    6. 选中 AmazoneC2ContainerServicefor EC2Role 旁边的复选框,然后选择 “下一步”。

    7. 对于 Role Name (角色名称),键入 ecsInstanceRole,然后选择 Create Role (创建角色)

      注意

      如果使用创建 Amazon EC2 的角色,则控制台将使用与角色相同的名称创建实例配置文件。Amazon Web Services Management Console

或者,您可以使用创建ecsInstanceRole IAM 角色。Amazon CLI以下示例使用信任策略和Amazon托管策略创建 IAM 角色。

创建 IAM 角色和实例配置文件(Amazon CLI)
  1. 创建以下信任策略并将其保存在名为的文本文件中ecsInstanceRole-role-trust-policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. 使用 c reate- role 命令创建ecsInstanceRole角色。在assume-role-policy-document参数中指定信任策略文件的位置。

    $ aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://ecsInstanceRole-role-trust-policy.json

    以下为响应示例。

    { "Role": { "Path": "/", "RoleName: "ecsInstanceRole", "RoleId": "AROAT46P5RDIY4EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/ecsInstanceRole". "CreateDate": "2022-12-12T23:46:37.247Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service: "ec2.amazonaws.com" } "Action": "sts:AssumeRole", } ] } }
  3. 使用create-instance-profile命令创建名为的实例配置文件ecsInstanceRole

    注意

    您需要在和Amazon API 中使用单独的操作创建角色Amazon CLI和实例配置文件。

    $ aws iam create-instance-profile --instance-profile-name ecsInstanceRole

    以下为响应示例。

    { "InstanceProfile": { "Path": "/", "InstanceProfileName": "ecsInstanceRole", "InstanceProfileId": "AIPAT46P5RDITREXAMPLE", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole", "CreateDate": "2022-06-30T23:53:34.093Z", "Roles": [], } }
  4. 使用 add-role-to-instance- profile 命令将ecsInstanceRole角色添加到ecsInstanceRole实例配置文件中。

    aws iam add-role-to-instance-profile \ --role-name ecsInstanceRole --instance-profile-name ecsInstanceRole
  5. 使用attach-role-policy命令将AmazonEC2ContainerServiceforEC2RoleAmazon托管策略附加到ecsInstanceRole角色。

    $ aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole