拒绝除一个之外的所有存储桶的 AWS IAM 策略
Posted
技术标签:
【中文标题】拒绝除一个之外的所有存储桶的 AWS IAM 策略【英文标题】:AWS IAM Policy to Deny all buckets except one 【发布时间】:2021-10-01 16:22:16 【问题描述】:我正在尝试创建一个 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/*"
]
]
问题是我有一些公开的存储桶,所以我想拒绝对这些存储桶的所有权限,我尝试在策略中编写类似以下内容但不起作用。我的想法是拒绝我特定存储桶之外的所有内容。
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition":
"StringNotLike":
"s3:prefix": [
"mybucket",
"mybucket/",
"mybucket/*"
]
,
【问题讨论】:
【参考方案1】:我用不同的方法解决了自己,因为s3:prefix
仅适用于部分操作,这种方法不适合我的用例。
相反,我可以使用NotResource
"Effect": "Deny",
"Action": "*",
"NotResource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
【讨论】:
以上是关于拒绝除一个之外的所有存储桶的 AWS IAM 策略的主要内容,如果未能解决你的问题,请参考以下文章