Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon ECS 任务执行 IAM 角色

Amazon ECS 容器代理将代表您调用 Amazon ECS API 操作,因此,容器实例需要服务的 IAM 策略和角色,以便了解属于您的代理。以下操作由任务指定角色中的 AmazonECSTaskExecutionRolePolicy 策略涵盖:

  • 调用 Amazon ECR 以拉取容器镜像

  • 调用 CloudWatch 以存储容器应用程序日志

注意

该任务执行角色由 ECS Agent 1.16.0 版和更高版本支持。

对于使用 Fargate 启动类型的任务,需要有任务执行角色才能从 Amazon ECR 中提取容器映像或者使用 awslogs 日志驱动程序,该驱动程序是当前唯一受支持的此启动类型的日志记录选项。如果您使用的是公共容器映像(例如,来自 Docker Hub 的公共映像),并且未使用日志记录配置,则不需要任务执行角色。

对于使用 EC2 启动类型的任务,任务执行角色授予的权限已经由容器实例 IAM 角色授予,因此不需要任务执行角色。有关更多信息,请参阅 Amazon ECS 容器实例 IAM 角色

AmazonECSTaskExecutionRolePolicy 策略如下所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

在控制台首次运行体验中,将自动为您创建 Amazon ECS 任务执行角色;但是,您应手动为任务附加托管 IAM 策略,以便 Amazon ECS 能够在引入将来功能和增强功能时添加这些功能的权限。您可以使用以下过程检查并确定您的账户是否已拥有 Amazon ECS 任务执行角色并且已附加托管 IAM 策略 (如果需要)。

在 IAM 控制台中检查 ecsTaskExecutionRole

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles

  3. 在角色列表中搜索 ecsTaskExecutionRole。如果该角色不存在,请使用以下过程创建该角色。如果角色存在,请选择角色以查看附加的策略。

  4. 选择 Permissions 选项卡。确保将 AmazonECSTaskExecutionRolePolicy 托管策略附加到该角色。如果附加该策略,则将正确配置 Amazon ECS 任务执行角色。否则,请执行以下子步骤来附加策略。

    1. 选择 Attach policy

    2. Filter 框中,键入 AmazonECSTaskExecutionRolePolicy 以缩小要附加的可用策略的范围。

    3. 选中 AmazonECSTaskExecutionRolePolicy 策略左侧的框并选择 Attach policy

  5. 选择 Trust relationships 选项卡,然后选择 Edit trust relationship

  6. 验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel。如果信任关系不符合,请将策略复制到 Policy Document 窗口中并选择 Update Trust Policy

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

创建 ecsTaskExecutionRole IAM 角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles,然后选择 Create role

  3. 选择受信任实体的类型部分,选择 Elastic Container Service

  4. 对于 Select your use case (选择使用案例),选择 Elastic Container Service Task (弹性容器服务任务),然后选择 Next: Permissions (下一步: 权限)。

  5. Attach permissions policy 部分中,搜索 AmazonECSTaskExecutionRolePolicy,选择该策略,然后选择 Next: Review

  6. 对于 Role Name,键入 ecsTaskExecutionRole,然后选择 Create role