我正在尝试阻止从特定域对我的 Cloudfront 文件进行热链接。通过结合在线示例和亚马逊自己的策略生成器,我想出了这个:
{
"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
,然后几分钟后尝试重新加载仍然发送引用标头的图像(使用 Chrome 的开发工具验证)。使用 Ctrl+F5 进行了硬重新加载,响应标头包含“X-Cache:Miss from cloudfront”,因此它肯定获得了最新版本的图像。
但是图像仍然显示正常并且没有被阻止。策略生成器没有“aws:Referer”键的选项,但它位于此处的 Amazon 文档中。我在这里做错了吗?