我如何允许 Amazon ECS 任务从 Amazon ECR 映像存储库中提取映像?

上次更新时间:2019 年 7 月 24 日

我如何允许 Amazon Elastic Container Service (Amazon ECS) 任务从 Amazon Elastic Container Registry (Amazon ECR) 映像存储库中提取映像?

简短描述

要访问 Amazon ECR 映像存储库与您的启动类型,请选择以下选项之一:

  • 对于 Amazon Elastic Compute Cloud (Amazon EC2) 启动类型,您必须提供与容器实例关联的实例配置文件的权限。
  • 对于 AWS Fargate 启动类型,您必须授予 Amazon ECS 任务执行角色权限来访问 Amazon ECR 映像存储库。

解决方法

对于 EC2 启动类型

  1. 打开 AWS Identity and Access Management (IAM) 控制台
  2. 在导航窗格中,选择角色,然后选择创建角色
  3. 选择 AWS 服务角色类型,然后选择 Elastic Container Service
  4. 选择您的使用案例部分中,选择 Elastic Container Service 的 EC2 角色,然后选择下一步:权限
  5. 选择默认的 AmazonEC2ContainerServiceforEC2Role 托管策略,然后选择下一步:标签
    注意:AmazonEC2ContainerServiceforEC2Role 策略还允许您将容器实例注册到您的 ECS 集群中并在 Amazon CloudWatch 中启用日志流
  6. 需要时,将标签添加到您的策略中,然后选择下一步:检查
  7. 对于角色名称,输入唯一的名称(例如 ECSRoleforEC2),然后选择创建角色
  8. 使用最新的经过 Amazon ECS 优化的 Amazon Linux AMI 启动新的容器实例。
  9. 将您创建的角色附加到新的容器实例
  10. 创建任务定义
    重要提示:在您的任务定义的 containerDefinitions 部分中,将 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 指定为映像属性。
  11. 使用您在步骤 10 中创建的任务定义运行任务或服务。

对于 Fargate 启动类型

在 Amazon ECS 控制台首次运行体验中自动创建 Amazon ECS 任务执行角色。如果您无法找到该角色或该角色被删除,请完成以下步骤:

  1. 打开 IAM 控制台
  2. 在导航窗格中,选择角色,然后选择创建角色
  3. 选择受信任实体的类型部分,选择 Elastic Container Service
  4. 对于选择您的使用案例,选择 Elastic Container Service 任务,然后选择下一步:权限
  5. 附加权限策略部分,搜索 AmazonECSTaskExecutionRolePolicy,选择策略,然后选择下一步:检查
    注意:此策略还提供使用 awslogs 日志驱动程序的权限。
  6. 对于角色名称,请输入 ecsTaskExecutionRole,然后选择创建角色
  7. 创建任务定义
    重要提示:在您的任务定义的 containerDefinitions 部分中,将 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 指定为映像属性。
  8. 使用您在步骤 7 中创建的任务定义运行任务或服务。

您的任务或服务现在可以从 Amazon ECR 映像存储库中提取映像。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?