使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

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

1 分钟阅读
0

我想要允许 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 映像存储库,请完成以下步骤:

  1. 打开 AWS Identity and Access Management(IAM)控制台
  2. 在导航窗格中,选择角色,然后选择创建角色
  3. 选择 AWS 服务角色类型。
  4. 用例部分中,选择 EC2。然后,选择下一步
  5. 选择默认 AmazonEC2ContainerServiceforEC2Role 托管策略,然后选择下一步
    注意:AmazonEC2ContainerServiceforEC2Role 策略还允许您向您的 ECS 集群注册容器实例并在 Amazon CloudWatch 中启用日志流
  6. (可选)为您的策略添加标签,然后选择下一步
  7. 角色名称中输入一个唯一名称(如 ECSRoleforEC2),然后选择创建角色
  8. 使用最新的 Amazon ECS 优化的 Amazon Linux 亚马逊机器映像(AMI)启动新的容器实例
  9. 将角色附加到新的容器实例
  10. 创建任务定义
    重要事项:在任务定义的容器部分,对于 Image URI,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag
  11. 使用您的任务定义运行任务或服务。
  12. (可选)如果您不想为实例配置文件提供权限,则向 ECS 任务执行角色提供权限。然后,在任务定义中指定 ecsTaskExecutionRole 并使用此任务定义来运行任务或服务。

Fargate 启动类型

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

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

相关信息

Using Amazon ECR Images with Amazon ECS

AWS 官方
AWS 官方已更新 7 个月前