我希望为用户(david(创建一个基于标记的策略,使其只能访问costCenter标记值为12345的s3存储桶。我已经创建了一个bucket,并用costCenter 12345标记了它,但我仍然无法对它执行列表。这是我的政策。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::*",
"Condition": {"StringLike": {"s3:ResourceTag/costCenter": "12345"
}
}
}
]
}
我也尝试过以下情况。
"Condition": {"StringLike": {"aws:ResourceTag/costCenter": "12345"
但在这两种情况下,当我这样做的时候。
aws s3 ls s3://mybucket-with-tag --profile david
我得到
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
S3中基于Tab的授权仅适用于对象,不适用于bucket:
AmazonS3仅支持对象资源的基于标记的授权。
但是,ListObjectsV2
是bucket级别的操作,而不是对象级别。所以你的政策不会奏效。同样对于对象级标记,S3具有附加的条件键。