本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用 Amazon ECR 私有存储库来托管容器镜像和构件,您的 Amazon ECS 任务可能会从中提取这些镜像和构件。为此,Amazon ECS 或 Fargate 容器代理必须有进行 ecr:BatchGetImage
、ecr:GetDownloadUrlForLayer
或 ecr:GetAuthorizationToken
API 调用的权限。
所需的 IAM 权限
下表显示了每种启动类型要使用的 IAM 角色,该角色为您的任务从 Amazon ECR 私有存储库提取提供了所需的权限。Amazon ECS 提供包括所需权限的托管 IAM 策略。
启动类型 | IAM 角色 | AWS 托管 IAM policy |
---|---|---|
Amazon EC2 实例上的 Amazon ECS |
使用容器实例 IAM 角色,该角色与注册到 Amazon ECS 集群的 Amazon EC2 实例相关联。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 IAM 角色。 |
有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 AmazonEC2ContainerServiceforEC2Role |
Fargate 上的 Amazon ECS |
使用您在 Amazon ECS 任务定义中引用的任务执行 IAM 角色。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务执行 IAM 角色。 |
有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 AmazonECSTaskExecutionRolePolicy。 |
外部实例上的 Amazon ECS |
使用容器实例 IAM 角色,该角色与注册到 Amazon ECS 集群的本地服务器或虚拟机(VM)相关联。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 Amazon ECS 角色。 |
有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 AmazonEC2ContainerServiceforEC2Role。 |
重要
AWS 托管 IAM policy 包含您可能不需要使用的额外权限。在这种情况下,这些是从 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
",
...
}
],
...
}