使用基于标签的访问控制
利用 Amazon ECR CreateRepository API 操作,您可以在创建存储库时指定标签。有关更多信息,请参阅 在 Amazon ECR 中标记私有存储库。
要使用户能够在创建存储桶时标记存储桶,用户必须有权使用创建资源的操作(例如,ecr:CreateRepository
)。如果在资源创建操作中指定了标签,则 Amazon 会对 ecr:CreateRepository
操作执行额外的授权,以验证用户是否具备创建标签的权限。
您可以通过 IAM policy 来使用基于标签的访问控制。示例如下。
以下策略仅允许用户创建存储库或将其标记为 key=environment,value=dev
。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateTaggedRepository", "Effect": "Allow", "Action": [ "ecr:CreateRepository" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": "dev" } } }, { "Sid": "AllowTagRepository", "Effect": "Allow", "Action": [ "ecr:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": "dev" } } } ] }
以下策略允许用户访问所有存储库(除非这些存储库标记为 key=environment,value=prod
)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ecr:*", "Resource": "*" }, { "Effect": "Deny", "Action": "ecr:*", "Resource": "*", "Condition": { "StringEquals": { "ecr:ResourceTag/environment": "prod" } } } ] }