2017-07-12 113 views
0

優化我的服務器使用我感動的圖像(〜500),並呈現HTML文件SEO(〜1000)S3存儲&它工作得很好,不過,我很擔心有DDoS最終,這會讓我花費很多錢,因爲亞馬遜會收取每個GET的請求。設置CORS配置爲AWS S3

我做了一些研究,如何防止,發現S3有一個CORS配置選項。

我試過了,但不幸的是,它似乎沒有工作。仍然可以從任何URL

enter image description here enter image description here

訪問文件,我在做什麼錯?

UPDATE:

也試過設置桶政策:

enter image description here

+0

如果我沒有設置公共訪問權限,我甚至無法從原始網站 –

回答

2

CORS配置允許跨域請求。這不是限制訪問文件的方法。

默認情況下,瀏覽器將不允許跨域請求。例如,瀏覽器將不允許從example1.com提供的頁面訪問example2.com的內容。這樣做是爲了保護您的個人信息,例如試圖向Facebook打開iframe以訪問您的個人Facebook內容的人。

但是,如果example2.com願意允許此跨域請求,那麼它可以添加一個交叉原始資源共享(CORS)策略,該策略規定允許example1.com以跨域方式訪問內容。然後網絡瀏覽器將允許訪問。

總結:它是您的網絡瀏覽器控制CORS。 CORS策略只是告訴網絡瀏覽器允許它。

參見:Cross-Origin Resource Sharing (CORS)

限制由介紹人

您的特殊要求,不過,似乎是你願意從Amazon S3服務的內容,但只有當它出現在特定網頁上。例如,如果由example.com提供服務的頁面請求,則僅顯示來自images.example.com的圖像。您可以通過在Amazon S3存儲桶政策中指定推薦人來實現此目的。

Restricting Access to a Specific HTTP Referrer

{ 
    "Version":"2012-10-17", 
    "Id":"http referer policy example", 
    "Statement":[ 
    { 
     "Sid":"Allow get requests originating from www.example.com and example.com.", 
     "Effect":"Allow", 
     "Principal":"*", 
     "Action":"s3:GetObject", 
     "Resource":"arn:aws:s3:::examplebucket/*", 
     "Condition":{ 
     "StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]} 
     } 
    } 
    ] 
} 

這是比較容易僞造引薦,但這通常應該給你你正在尋找的東西。

+0

加載它,我做了你的建議,但它仍然沒有限制它。檢查 –

+0

問題的更新請嘗試此操作:刪除存儲桶策略並檢查對象是否可訪問。如果它們仍然可以訪問,那麼其他內容就是授予訪問權限(例如,對象本身的權限,IAM用戶策略),並且必須刪除該對象以使其再次變爲私有。然後,添加上述政策,它應該工作正常。 –