AWS IAM 策略拒绝除一个以外的所有存储桶
AWS IAM Policy to Deny all buckets except one
我正在尝试创建 IAM 策略以授予对特定存储桶的只读权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
问题是我有一些存储桶 public,所以我想拒绝对这些存储桶的所有权限,我尝试在策略中编写类似以下内容但不起作用。我的想法是拒绝我特定桶之外的一切。
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotLike": {
"s3:prefix": [
"mybucket",
"mybucket/",
"mybucket/*"
]
}
}
},
我用不同的方法解决了自己的问题,因为 s3:prefix
仅适用于一部分操作,这种方法不适合我的用例。
相反,我可以使用 NotResource
{
"Effect": "Deny",
"Action": "*",
"NotResource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
我正在尝试创建 IAM 策略以授予对特定存储桶的只读权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
问题是我有一些存储桶 public,所以我想拒绝对这些存储桶的所有权限,我尝试在策略中编写类似以下内容但不起作用。我的想法是拒绝我特定桶之外的一切。
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotLike": {
"s3:prefix": [
"mybucket",
"mybucket/",
"mybucket/*"
]
}
}
},
我用不同的方法解决了自己的问题,因为 s3:prefix
仅适用于一部分操作,这种方法不适合我的用例。
相反,我可以使用 NotResource
{
"Effect": "Deny",
"Action": "*",
"NotResource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}