我正在尝试授予一组用户访问具有特定标记的所有s3-buckets,但不能访问所有其他用户。 我拼凑在一起的政策看起来像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListAll",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowAllIfGroup",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Condition: : {
"StringEquals" : {
"s3.ResourceTag/allow-group": "s3-access-group"
}
},
"Resource": [
"arn:aws:s3:::*",
"arn:aws:s3:::*/*"
]
}
]
}
我无法让它工作我已经尝试模拟ListBucket和ListAllMyBuckets的策略对着标记的Bucket的arn,ListAllMyBuckets工作,ListBucket失败。
如果我将此政策改编为ec2(如'如果标签匹配,则'授予开始/停止/终止实例'),它就像魅力一样。
这是否可行或S3不允许以这种方式匹配存储桶?
(进一步说明:我的存储桶有标签“allow-group”和“AllowGroup”设置,我不确定短划线是否有问题)
答案 0 :(得分:2)
S3不支持基于存储桶标签(ResourceTag)的条件键,而仅基于对象标签。
在此处查看支持的条件键的完整列表(向下滚动至“ Amazon S3的条件键”): https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html#amazons3-policy-keys
这就是为什么它不起作用。
答案 1 :(得分:1)
我做了一些实验,也无法获得你想要的结果。
首先,对S3 ResourceTag的在线参考很少见,但AWS re:Invent 2016: AWS S3 Deep-Dive Hands-On Workshop给出了一个例子:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET-NAME/*",
"Condition": {
"StringEquals": {
"S3:ResourceTag/HIPAA": "True"
}
}
}
]
}
请注意,它使用S3:ResourceTag
而不是S3.ResourceTag
。
我尝试对存储桶标记和对象标记使用此逻辑,但未能成功运行。我怀疑ResourceTag
是指对象级标记而不是桶级标记,但无法证明这一点,因为它无法在两种情况下都能正常工作。
我使用了这样的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringEquals": {
"s3:ResourceTag/AllowGroup": "s3-access-group"
}
}
}
]
}
但是,即使存储桶和对象都有适当的标记,它也不会让我访问对象。
答案 2 :(得分:1)
AWS 文档在此处提供了所有支持与 AWS IAM 和资源标记配合使用的服务的参考 https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html
目前,仅支持 S3 中的对象级标记:
¹ Amazon S3 supports tag-based authorization for only object resources.
² Amazon S3 supports service-linked roles for Amazon S3 Storage Lens.
深入研究文档,在撰写本文时似乎不支持对象上的 PUT 和 DELETE 操作:https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging-and-policies.html