

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Amazon ECR 映像与 Amazon ECS 结合使用
<a name="ECR_on_ECS"></a>

您可以使用 Amazon ECR 私有存储库来托管容器镜像和构件，您的 Amazon ECS 任务可能会从中提取这些镜像和构件。要使其发挥作用，Amazon ECS 或 Fargate 容器代理必须具有创建`ecr:BatchGetImage``ecr:GetDownloadUrlForLayer`、和的权限。`ecr:GetAuthorizationToken` APIs

## 所需的 IAM 权限
<a name="ECR_on_ECS_iampermissions"></a>

下表显示了每种启动类型要使用的 IAM 角色，该角色为您的任务从 Amazon ECR 私有存储库提取提供了所需的权限。Amazon ECS 提供包括所需权限的托管 IAM 策略。


****  

| 启动类型 | IAM 角色 | AWS 托管 IAM 策略 | 
| --- | --- | --- | 
| Amazon EC2 实例上的 Amazon ECS |  使用容器实例 IAM 角色，该角色与注册到 Amazon ECS 集群的 Amazon EC2 实例相关联。有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的[容器实例 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html)。  |  `AmazonEC2ContainerServiceforEC2Role` 有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的 [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role)  | 
|   Fargate 上的 Amazon ECS   |  使用您在 Amazon ECS 任务定义中引用的任务执行 IAM 角色。有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的[任务执行 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)。  |  `AmazonECSTaskExecutionRolePolicy` 有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的 [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonECSTaskExecutionRolePolicy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonECSTaskExecutionRolePolicy)。  | 
|  外部实例上的 Amazon ECS  |  使用容器实例 IAM 角色，该角色与注册到 Amazon ECS 集群的本地服务器或虚拟机（VM）相关联。有关更多信息，请参阅 [Amazon Elastic Container Service 开发人员指南中的](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html)*容器实例 Amazon ECS 角色*。  |  `AmazonEC2ContainerServiceforEC2Role` 有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的 [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role)。  | 

**重要**  
 AWS 托管 IAM 策略包含您可能不需要的额外权限即可使用。在这种情况下，这些是从 Amazon ECR 私有存储库提取所需的最低权限。  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

## 在 Amazon ECS 任务定义中指定 Amazon ECR 镜像
<a name="ECR_on_ECS_taskdef"></a>

创建 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",
            ...
        }
    ],
    ...
}
```