私有存储库策略 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

私有存储库策略

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

存储库策略与 IAM policy

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 policy,用于控制不同级别下的用户访问;有关更多信息,请参阅 Amazon Elastic Container Registry 基于身份的策略示例

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

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

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribeRepoImage", "Effect": "Allow", "Action": [ "ecr:DescribeImages", "ecr:DescribeRepositories" ], "Resource": ["arn:aws:ecr:region:account-id:repository/repository-name"] } ] }