我有一个小组,我已将以下政策应用于该小组。我向该组添加了一个用户,并为该用户创建了访问密钥。我可以从“mybucket”获得,但我无法投入“mybucket”。当我尝试Put时,我得到“Access Denied”。谁能告诉我我做错了什么。请告诉我。
{
"Statement":[{
"Effect":"Allow",
"Action":["s3:PutObject","s3:GetObject"],
"Resource":["arn:aws:s3:::mybucket","arn:aws:s3:::mybucket/*"]
},
{
"Effect":"Deny",
"Action":["*"],
"NotResource":["arn:aws:s3:::mybucket","arn:aws:s3:::mybucket/*"]
}
]
}
编辑:有人让我说出政策的目标。我想“仅允许”对指定存储区的组的PUT和GET权限。我想明确“拒绝”指定所有资源NOT(NotResource)的组的所有其他权限。我在AWS发布的一篇文章中添加了明确的“拒绝”,表明这样做是一种很好的做法。
答案 0 :(得分:1)
每个策略必须只涵盖该存储桶中的一个存储桶和资源(编写策略时,不包含引用其他存储桶中的其他存储桶或资源的语句)
答案 1 :(得分:0)
拒绝语句总是优先于Allow语句,这意味着上述策略应该阻止用户的所有访问。你是如何做Get&Put请求的?是否有可能匿名执行获取(没有身份验证)?
了解上述政策的目标是有帮助的吗?拒绝陈述的目的是什么?