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 policy 和角色,以便该服务了解该代理属于您。您必须创建一个 IAM 角色和一个实例配置文件,以便容器实例在启动时使用。否则,您无法创建计算环境并在其中启动容器实例。此要求适用于在使用或未使用由 Amazon 提供的经 Amazon ECS 优化的 AMI 的情况下启动的容器实例。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 中的 Amazon ECS 容器实例 IAM 角色。

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

在 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. 要查看权限策略,请搜索 AmazonEC2ContainerServiceforEC2Role

    6. 选中 AmazonEC2ContainerServiceforEC2Role 旁边的复选框,然后选择下一步

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

      注意

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

或者,您可以使用 Amazon CLI 创建 ecsInstanceRole IAM 角色。使用以下示例通过信任策略和 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. 使用 create-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 CLI 和 Amazon API 中将角色和实例配置文件创建为单独的操作。

    $ 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