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

私有存储库策略示例

以下示例显示了可用于控制用户对 Amazon ECR 存储库的权限的策略声明。

重要

Amazon ECR 要求用户有权通过 IAM 策略调用 ecr:GetAuthorizationToken API,然后才能对注册表进行身份验证并从任意 Amazon ECR 存储库推送或提取任意镜像。Amazon ECR 提供多个托管 IAM 策略,用于控制不同级别下的用户访问;有关更多信息,请参阅 Amazon Elastic Container Registry 基于身份的策略示例

示例:允许一个或多个 IAM 用户

以下存储库策略允许一个或多个 IAM 用户向存储库推送和提取镜像。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/push-pull-user-1", "arn:aws:iam::account-id:user/push-pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

示例:允许其他账户

以下存储库策略允许特定账户推送镜像。

重要

您授予权限的账户必须启用所创建存储库策略的区域,否则将发生错误。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

以下存储库策略允许部分 IAM 用户提取镜像 (pull-user-1pull-user-2),并为其他用户提供完全的访问权限 (admin-user)。

注意

对于 Amazon Web Services Management Console 中当前不支持的较复杂的存储库策略,您可以使用 set-repository-policy Amazon CLI 命令应用此策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/pull-user-1", "arn:aws:iam::account-id:user/pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/admin-user" }, "Action": [ "ecr:*" ] } ] }

示例:拒绝所有

以下存储库策略拒绝所有账户中的所有用户提取镜像。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPull", "Effect": "Deny", "Principal": "*", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

示例:限制对特定 IP 地址的访问权限

以下示例拒绝向任何用户授予在应用于来自特定地址范围的存储库时执行任何 Amazon ECR 操作的权限。

此语句中的条件确定允许的 Internet 协议版本 4 (IPv4) IP 地址范围为 54.240.143.*

Condition 块使用 NotIpAddress 条件和 aws:SourceIp 条件键(这是 Amazon 范围的条件键)。有关这些条件键的更多信息,请参阅 Amazon 全局条件上下文键aws:sourceIp IPv4 值使用标准 CIDR 表示法。有关更多信息,请参阅 IAM 用户指南中的 IP 地址条件运算符

{ "Version": "2012-10-17", "Id": "ECRPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Deny", "Principal": "*", "Action": "ecr:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "54.240.143.0/24" } } } ] }