我有一個網站從亞馬遜S3提供我們的內容。目前,我能夠從我的網站服務器/網站讀取和寫入數據到S3。 ACL權限很好 - 我擁有網站的完全權限,只需閱讀公共權限即可。針對盜鏈的S3存儲桶政策阻止了寫入
然後,我添加了一個S3桶策略來防止盜鏈。您可以在下面看到S3政策。
此策略運行良好 - 除了一個問題 - 它現在阻止來自我的網絡服務器的文件寫入請求。所以,雖然我的公共網站提供的內容很好,但當我嘗試進行文件或目錄操作(如上傳圖像或移動圖像(或目錄))時,我現在收到「拒絕訪問」錯誤。 (通過我的Web應用程序服務器,即Railo/Coldfusion)
我不知道爲什麼會發生這種情況?最初我以爲這可能是因爲我的網絡服務器和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/*"
]
}
}
}
]
}
如果在允許之前放置拒絕,或者完全刪除「StringNotLike」/第二個策略塊,該怎麼辦?第一個「StringLike」條件應該可以阻止任何不是來自您的域的請求。 – Brian
@Brian:交換他們什麼都不做。刪除StringNotLike塊允許所有請求通過,從而使得防鏈接無效。我還在某處讀到,您必須同時擁有允許和拒絕塊,才能實現此效果,因爲它們都處於同一位置。 – Cheeky