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 版和更高版本支持。

如果要使用任务的私有注册表身份验证功能,则需要以内联策略的形式向任务执行角色添加其他权限。有关更多信息,请参阅私有注册表身份验证必需的 IAM 权限

对于使用 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. 要缩小要附加的可用策略的范围,请为筛选条件键入 AmazonECSTaskExecutionRolePolicy

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

  5. 选择信任关系,然后选择编辑信任关系

  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. 在导航窗格中,选择 RolesCreate role

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

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

  5. 附加权限策略部分中,搜索 AmazonECSTaskExecutionRolePolicy,选择该策略,然后选择下一步: 审核

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