除了某些网站(使用referer)之外,我希望所有公共场所的亚马逊s3限制访问文件,
目前我有这个桶政策
{
"Id":"foosite-test",
"Statement":[
{
"Sid": "Allow from foosite admin",
"Action": "s3:GetObject",
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucket/*",
"Principal": {
"AWS":["*"]
},
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.foosite.co.uk/admin/*",
"http://www.foosite.co.au/admin/*"
]
}
}
}
]
}
但似乎这项政策没有效果。我可以复制粘贴s3对象网址,仍然可以访问该文件。 这个政策有什么问题?
答案 0 :(得分:0)
您还需要为deny添加策略,即阻止所有其他引用者。我回答了类似的问题,但没有在该示例政策中包含拒绝部分。您可以在此处找到我更新的答案:Amazon S3 objects: is it possible to restrict public read policy to some IP adresses only ?
在您的情况下,您必须使用referer而不是IP。