我如何允许 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 启动类型
- 打开 AWS Identity and Access Management (IAM) 控制台。
- 在导航窗格中,选择角色,然后选择创建角色。
- 选择 AWS 服务角色类型,然后选择 Elastic Container Service。
- 在选择您的使用案例部分中,选择 Elastic Container Service 的 EC2 角色,然后选择下一步:权限。
- 选择默认的 AmazonEC2ContainerServiceforEC2Role 托管策略,然后选择下一步:标签。
注意:AmazonEC2ContainerServiceforEC2Role 策略还允许您将容器实例注册到您的 ECS 集群中并在 Amazon CloudWatch 中启用日志流。 - 需要时,将标签添加到您的策略中,然后选择下一步:检查。
- 对于角色名称,输入唯一的名称(例如 ECSRoleforEC2),然后选择创建角色。
- 使用最新的经过 Amazon ECS 优化的 Amazon Linux AMI 启动新的容器实例。
- 将您创建的角色附加到新的容器实例。
- 创建任务定义。
重要提示:在您的任务定义的 containerDefinitions 部分中,将 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 指定为映像属性。 - 使用您在步骤 10 中创建的任务定义运行任务或服务。
对于 Fargate 启动类型
在 Amazon ECS 控制台首次运行体验中自动创建 Amazon ECS 任务执行角色。如果您无法找到该角色或该角色被删除,请完成以下步骤:
- 打开 IAM 控制台。
- 在导航窗格中,选择角色,然后选择创建角色。
- 在选择受信任实体的类型部分,选择 Elastic Container Service。
- 对于选择您的使用案例,选择 Elastic Container Service 任务,然后选择下一步:权限。
- 在附加权限策略部分,搜索 AmazonECSTaskExecutionRolePolicy,选择策略,然后选择下一步:检查。
注意:此策略还提供使用 awslogs 日志驱动程序的权限。 - 对于角色名称,请输入 ecsTaskExecutionRole,然后选择创建角色。
- 创建任务定义。
重要提示:在您的任务定义的 containerDefinitions 部分中,将 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 指定为映像属性。 - 使用您在步骤 7 中创建的任务定义运行任务或服务。
您的任务或服务现在可以从 Amazon ECR 映像存储库中提取映像。