本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon ECR 映像与 Amazon ECS 结合使用
您可以使用 Amazon ECR 私有存储库来托管容器镜像和构件,您的 Amazon ECS 任务可能会从中提取这些镜像和构件。要使其发挥作用,Amazon ECS 或 Fargate 容器代理必须具有创建ecr:BatchGetImage
ecr:GetDownloadUrlForLayer
、和的权限。ecr:GetAuthorizationToken
APIs
所需的 IAM 权限
下表显示了每种启动类型要使用的 IAM 角色,该角色为您的任务从 Amazon ECR 私有存储库提取提供了所需的权限。Amazon ECS 提供包括所需权限的托管 IAM 策略。
启动类型 | IAM 角色 | Amazon 托管 IAM 策略 |
---|---|---|
亚马逊实例上的 Amazon EC2 ECS |
使用容器实例 IAM 角色,该角色与注册到您的 Amazon ECS 集群的亚马逊 EC2 实例相关联。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 IAM 角色。 |
有关更多信息,请参阅 AmazonEC2ContainerServiceforEC2Role在 Amazon 弹性容器服务开发者指南中 |
Fargate 上的 Amazon ECS |
使用您在 Amazon ECS 任务定义中引用的任务执行 IAM 角色。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务执行 IAM 角色。 |
有关更多信息,请参阅 AmazonECSTaskExecutionRolePolicy在 Amazon 弹性容器服务开发者指南中。 |
外部实例上的 Amazon ECS |
使用容器实例 IAM 角色,该角色与注册到 Amazon ECS 集群的本地服务器或虚拟机(VM)相关联。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 Amazon ECS 角色。 |
有关更多信息,请参阅 AmazonEC2ContainerServiceforEC2Role在 Amazon 弹性容器服务开发者指南中。 |
重要
Amazon 托管 IAM 策略包含您可能不需要的额外权限即可使用。在这种情况下,这些是从 Amazon ECR 私有存储库提取所需的最低权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
在 Amazon ECS 任务定义中指定 Amazon ECR 镜像
创建 Amazon ECS 任务定义时,您可以指定在 Amazon ECR 私有存储库中托管的容器镜像。在任务定义中,确保对您的 Amazon ECR 镜像使用完整的 registry/repository:tag
命名。例如:aws_account_id
.dkr.ecr.region
.amazonaws.com/
。my-repository
:latest
以下任务定义代码段显示了用于指定在 Amazon ECS 任务定义中的 Amazon ECR 中托管的容器映像的语法。
{ "family": "
task-definition-name
", ... "containerDefinitions": [ { "name": "container-name
", "image": "
aws_account_id
.dkr.ecr.region
.amazonaws.com/
", ... } ], ... }my-repository
:latest