我想阻止我的Cloudfront文件从特定域盗链。通过网上的例子和亚马逊自己的策略生成一个组合,我想出了这一点:我的Amazon S3存储桶策略有问题吗?
{
"Version": "2008-10-17",
"Id": "http referer policy",
"Statement": [{
"Sid": "Block image requests",
"Action": "s3:GetObject",
"Effect": "Deny",
"Resource": "arn:aws:s3:::mybucket/subdir/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://example.com/*"
]
}
},
"Principal": {
"AWS": "*"
}
}]
}
我发送的无效请求的文件中的mybucket
子目录,然后几分钟后试图重新加载与图像referer头仍然发送(使用Chrome的开发工具进行验证)。使用Ctrl + F5进行了重新加载,并且响应标头中包含“X-Cache:来自cloudfront的Miss”,因此它肯定会获得最新版本的图像。
但图像仍然显示正常,并没有被阻止。策略生成器没有“aws:Referer”键的选项,但它在Amazon docs here中。我在这里做错了什么?
您是如何真正允许CloudFront访问您的对象的(首先请参阅我的更新后的答案)? – 2012-02-02 00:09:51