【发布时间】:2017-02-12 19:21:24
【问题描述】:
我在 AWS S3 中设置了一个存储桶。我使用 ALLOW 策略(使用存储桶策略编辑器)为我的 IAM 用户授予了对存储桶的访问权限。我能够与用户一起将文件保存到存储桶中。我之前一直在使用存储桶进行媒体服务,因此默认操作似乎是授予公众查看文件(图像)的权限,这对于大多数网站来说都很好。
在我的新项目中,我希望能够使用 IAM 用户访问 S3 存储桶,但希望拒绝所有其他访问。没有公共读取访问权限,除了应该具有完全访问权限的 IAM 用户之外没有任何访问权限保存/删除任何内容。
我应该怎么做,我正在阅读关于 here 的信息。它说使用NotPrincipal 属性创建Deny 策略,这样它仍然允许该用户,但拒绝其他所有人。为了更好地衡量,我还为我想要的用户添加了一个 Allow 策略:
{
"Version": "2012-10-17",
"Id": "Policy**********",
"Statement": [
{
"Sid": "Stmt**********",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::*********:user/my_user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
},
{
"Sid": "Stmt*************",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::**********:user/my_user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
}
]
}
但这会拒绝所有人访问,即使是my_user。我可以再次确认,当我刚刚使用上述策略的 Allow 部分时我拥有访问权限,但随后公众也拥有读取访问权限,我正试图将其关闭。
如何设置我的存储桶策略以仅授予唯一的 IAM 用户完全访问权限并拒绝任何其他用户的所有访问权限?
谢谢。
【问题讨论】:
-
具体来说,“my_user”是如何访问存储桶的?