我想要允许 Amazon Elastic Container Service(Amazon ECS)任务从 Amazon Elastic Container Registry(Amazon ECR)映像存储库拉取映像。
简短描述
要使用您的启动类型访问 Amazon ECR 映像存储库,选择以下选项之一:
- Amazon Elastic Compute Cloud(Amazon EC2)启动类型: 为与容器实例关联的 ecsTaskExecutionRole 或实例配置文件提供权限。最佳做法是向 ecsTaskExecutionRole 提供 Amazon ECR 权限。如果同时为实例和角色提供权限,则 ecsTaskExecutionRole 优先级更高。
- AWS Fargate 启动类型: 向 Amazon ECS 任务执行角色提供访问 Amazon ECR 映像存储库的权限。
解决方法
EC2 启动类型
要访问 EC2 启动类型的 Amazon ECR 映像存储库,请完成以下步骤:
- 打开 AWS Identity and Access Management(IAM)控制台。
- 在导航窗格中,选择角色,然后选择创建角色。
- 选择 AWS 服务角色类型。
- 在用例部分中,选择 EC2。然后,选择下一步。
- 选择默认 AmazonEC2ContainerServiceforEC2Role 托管策略,然后选择下一步。
注意:AmazonEC2ContainerServiceforEC2Role 策略还允许您向您的 ECS 集群注册容器实例并在 Amazon CloudWatch 中启用日志流。
- (可选)为您的策略添加标签,然后选择下一步。
- 在角色名称中输入一个唯一名称(如 ECSRoleforEC2),然后选择创建角色。
- 使用最新的 Amazon ECS 优化的 Amazon Linux 亚马逊机器映像(AMI)启动新的容器实例。
- 将角色附加到新的容器实例。
- 创建任务定义。
重要事项:在任务定义的容器部分,对于 Image URI,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag。
- 使用您的任务定义运行任务或服务。
- (可选)如果您不想为实例配置文件提供权限,则向 ECS 任务执行角色提供权限。然后,在任务定义中指定 ecsTaskExecutionRole 并使用此任务定义来运行任务或服务。
Fargate 启动类型
Amazon ECS 任务执行角色将在 Amazon ECS 控制台的首次运行体验中自动创建。如果找不到角色或角色已删除,请完成以下步骤:
- 打开 IAM 控制台。
- 在导航窗格中,选择角色,然后选择创建角色。
- 在选择可信实体类型部分,选择弹性容器服务。
- 为选择您的用例选择弹性容器服务任务,然后选择下一步。
- 在附加权限策略部分,搜索 AmazonECSTaskExecutionRolePolicy。选择策略,然后选择下一步。
**注意:**此策略还提供使用 awslogs 日志驱动程序的权限。
- 在角色名称中输入 ecsTaskExecutionRole,然后选择创建角色。
- 创建任务定义。
重要事项:在任务定义的容器部分,对于 Image URI,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag。此外,请指定您创建的 IAM 角色。
- 使用您的任务定义运行任务或服务。
相关信息
Using Amazon ECR Images with Amazon ECS