我有一个网站,提供来自 Amazon S3 的内容。目前,我可以从我的网络服务器/网站很好地读取和写入数据到 S3。ACL 权限很好 - 我拥有网站的完全权限,并且只为公众读取权限。
然后,我添加了一个 S3 存储桶策略来防止盗链。您可以在下面查看 S3 策略。
此策略运行良好 - 除了一个问题 - 它现在阻止来自我的网络服务器的文件写入请求。因此,虽然我的公共网站提供的内容很好,但当我尝试执行文件或目录操作时,例如上传图像或移动图像(或目录),我现在收到“拒绝访问”错误。(通过我的 Web 应用程序服务器,即 Railo / Coldfusion)
我不确定为什么会这样?最初我认为这可能是因为我的 Web 服务器和 S3 之间的文件读/写请求来自我的 IP 而不是我的域名。但即使添加了我的 IP,错误仍然存在。
如果我删除该策略,一切都会再次正常运行。
有谁知道是什么原因造成的,或者我在这里缺少什么?谢谢
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "Allowinmydomains",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::cdn.babeswithbraces.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.babeswithbraces.com/*",
"http://babeswithbraces.com/*",
"http://64.244.61.40/*"
]
}
}
},
{
"Sid": "Givenotaccessifrefererisnomysites",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::cdn.babeswithbraces.com/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"http://www.babeswithbraces.com/*",
"http://babeswithbraces.com/*",
"http://64.244.61.40/*"
]
}
}
}
]
}