

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

# Amazon ECR 中的私有存储库策略
<a name="repository-policies"></a>

Amazon ECR 使用基于资源的权限控制对存储库的访问。基于资源的权限让您可以指定能够访问存储库的用户或角色，以及这些用户或角色可以对该存储库执行的操作。默认情况下，只有创建存储库的 Amazon 账户才有权访问存储库。您可以应用存储库策略来允许针对存储库的其他权限。

**Topics**
+ [存储库策略与 IAM policy](#repository-policy-vs-iam-policy)
+ [Amazon ECR 中的私有存储库策略示例](repository-policy-examples.md)
+ [在 Amazon ECR 中设置私有存储库策略声明](set-repository-policy.md)

## 存储库策略与 IAM policy
<a name="repository-policy-vs-iam-policy"></a>

Amazon ECR 存储库策略是 IAM policy 的一部分，这些策略专用于控制对单个 Amazon ECR 存储库的访问。IAM policy 通常用于应用针对整个 Amazon ECR 服务的权限，但也可用于控制对特定资源的访问。

在确定某个特定用户或角色可对存储库执行的操作时，将同时使用 Amazon ECR 存储库策略和 IAM policy。如果通过存储库策略允许某个用户或角色执行某个操作但通过 IAM policy 拒绝其执行该操作 (或反过来)，则将拒绝该操作。用户或角色只需通过存储库策略或 IAM policy 之一获得执行某个操作的许可，而不需要同时通过这两个策略来获得执行该操作的许可。

**重要**  
Amazon ECR 要求用户有权通过 IAM policy 调用 `ecr:GetAuthorizationToken` API，然后才能对注册表进行身份验证并对任意 Amazon ECR 存储库推送或提取任意镜像。Amazon ECR 提供了多个托管 IAM 策略来控制不同级别的用户访问。有关更多信息，请参阅 [Amazon Elastic Container Registry 基于身份的策略示例](security_iam_id-based-policy-examples.md)。

您可以使用这两个策略类型之一来控制对您的存储库的访问，如以下示例中所示。

此示例显示了一个 Amazon ECR 存储库策略，该策略允许某个特定用户描述存储库及存储库内的镜像。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ECRRepositoryPolicy",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::111122223333:user/username"},
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": "*"
        }
    ]
}
```

------

此示例显示了一个 IAM policy，该策略可实现与上面相同的目标，方法是使用资源参数将策略范围限定为存储库 (由存储库的完整 ARN 指定)。有关 Amazon Resource Name (ARN) 格式的更多信息，请参阅 [资源](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeRepoImage",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": ["arn:aws:ecr:us-east-1:111122223333:repository/repository-name"]
        }
    ]
}
```

------