我使用Policy Generator为我的桶创建一个简单的规则;规则应该允许以下预期效果:
为此我编写了以下规则,但是有些东西没有按预期工作,特别是,我完全失去了对存储桶元素的访问权限,在所有情况下都获得了“拒绝访问”,包括root:
编辑:使用@jarmod回答我能够设置预期的功能,但它会触发警告,关于存储桶是公开的,我没有看到差异方面没有策略,存储桶仍然可以以只读方式公开访问。有什么区别?
答案 0 :(得分:1)
也许你可以这样做:
您可以使用以下政策执行此操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Effect": "Deny",
"Principal": "*",
"NotAction": "s3:GetObject",
"Resource": [
"arn:aws:s3:::mybucket/*"
],
"Condition": {
"StringNotLike": {
"aws:userId": [
"iam-userid-here",
"root-userid-here"
]
}
}
}
]
}
要获取iam-userid-here
,请运行aws iam list-users
并检索IAM用户的UserId。
同样,要获取root-userid-here
,只需从上一个aws iam list-users
输出的Arn中检索帐号。 root帐户userId 是AWS账号。
iam-userid-here
指示的IAM用户可以拥有允许S3访问的IAM策略。