Amazon ECR 中的私有存储库政策 - Amazon ECR

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

Amazon ECR 中的私有存储库政策

Amazon ECR 使用基于资源的权限控制对存储库的访问。基于资源的权限允许您指定哪些用户或角色有权访问存储库,以及他们可以对存储库执行哪些操作。默认情况下,只有创建存储库的 AWS 账户才有权访问存储库。您可以应用允许对仓库进行额外访问的存储库策略。

存储库策略与 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"] } ] }