本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于标签的访问控制
Amazon ECR CreateRepository
API 操作允许您在创建存储库时指定标签。有关更多信息,请参阅 在 Amazon ECR 中标记私有存储库。
要使用户能够在创建存储桶时标记存储桶,用户必须有权使用创建资源的操作(例如,ecr:CreateRepository
)。如果在资源创建操作中指定了标签,则 Amazon 会对 ecr:CreateRepository
操作执行额外的授权,以验证用户是否具备创建标签的权限。
您可以通过 IAM policy 来使用基于标签的访问控制。示例如下。
以下策略仅允许用户创建存储库或将其标记为 key=environment,value=dev
。
- JSON
-
-
{
"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
。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecr:ResourceTag/environment": "prod"
}
}
}
]
}