我有一个组策略,允许完全访问多个 S3 存储桶。
此策略允许读取和写入存储桶。
使用这些存储桶的团队希望其中一个文件夹对其组是只读的,而无法写入或删除其内容。
我如何提供它,同时仍然允许他们完全访问所有其他文件夹?
要允许访问"除一个文件夹之外的每个文件夹",您需要使用Allow
策略和Deny
策略。这是因为Deny
总是覆盖Allow
。
您应该将所需的 IAM 用户放入 IAM 组,然后将如下策略添加到 IAM 组:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket/*",
},
{
"Effect": "Deny",
"Action": [
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/read-only-path/*",
}
]
}
对Allow
要小心一点——向存储桶授予s3:*
不是好的做法,因为这可能会给他们太多的权限。因此,将其缩减为他们实际需要的内容。