我想将EC2实例限制为具有相同namespace的EC2容器注册表(ECR)存储库。
IAM实例角色只应 可以在AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/test-namespace/...
下提取所有存储库。没别了。
我在EC2实例角色上尝试了以下IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1490955256000",
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage"
],
"Resource": [
"arn:aws:ecr:REGION:AWS_ACCOUNT_ID:repository/test-namespace/*"
]
}
]
}
但是我能够从该实例上的所有存储库中docker pull
张图像。例如。 AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/test-repo:latest
我看不出我做错了什么。它不能是resource-level permissions。除ecr:GetAuthorizationToken
之外,上述所有操作都支持它们。
由于我们有许多存储库,因此我不想在每个存储库上设置资源权限。
答案 0 :(得分:1)
tb2Text = h*e*l*l*o
不支持资源级权限。您需要将ecr:GetAuthorizationToken
授予"Resource": "*"
操作。其他操作可以限制为您希望访问的特定资源。
在一个策略中,它看起来像这样:
ecr:GetAuthorizationToken