2014-07-07 70 views
0

感謝您的關注。如果我啓用了CORS安全策略,我應該如何在Amazon S3文件上配置安全性

我是亞馬遜S3的新手,並設置了大約100K文件的存儲桶。我想限制從只有一個域訪問這些文件,所以我已經設置在桶中CORS政策:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>http://www.example.com</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
     <AllowedHeader>Authorization</AllowedHeader> 
    </CORSRule> 
    <CORSRule> 
     <AllowedOrigin>http://www.example.com/*</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
     <AllowedHeader>Authorization</AllowedHeader> 
    </CORSRule> 
</CORSConfiguration> 

的問題

即使有了這個CORS政策,我能直接將單個文件的URL輸入到瀏覽器中並進行訪問,因此看起來安全性沒有問題。

目前,S3中每個文件的安全性設置爲「Everyone」以獲取讀取權限。我會假設CORS文件會覆蓋這個。如果我從權限中刪除「Everyone」,則根本無法訪問文件(即使使用CORS策略)。

任何想法?

回答

1

CORS配置將僅用於告訴瀏覽器它是否可以向該域發送請求,以及使用哪個標頭和方法。它不會影響S3授權。

您可以爲可能更適合應用程序管理的安全性的對象生成預先簽名的臨時URL。

有關Java SDK示例,請參見http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html

+0

謝謝,這是非常有幫助的。預簽名的東西需要只做一次並存儲在數據庫中,或者是否應該在請求包含指向S3文件的鏈接的頁面時完成?再次感謝。 –

+0

每當請求包含指向S3文件的鏈接的頁面時。這是一個非常簡單的安全控制,不考慮身份驗證,如果需要,請使用IAM角色查看身份聯合身份驗證。 –

+0

非常感謝您的幫助! –