2016-01-22 56 views

回答

3

看來,你的要求是:Amazon S3存儲

  • 內容
  • 內容通過亞馬遜的CloudFront的
  • 內容服務應該是私有的,但有辦法讓特定的人認爲它

這可以通過使用預先簽名的URL來完成。這些網址只能在有限的時間內運行。

當您的應用程序確定用戶有權查看圖像時,它可以生成一個預先簽名的URL,在一段有限的時間內授予訪問權限。正如您一樣,只需在<IMG>標籤中使用此URL即可。

參見:

由於在Amazon S3中的內容將是私有的(因此用戶無法繞過CloudFront的直接訪問它),你還需要授予CloudFront權限來訪問S3中的內容。請參閱:Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content

另一種選擇是,使用Signed Cookies而不是每次創建預簽名URL。但是,這並不能對訪問單個對象進行細粒度的控制 - 更重要的是授予對多個對象(如訂閱區域)的訪問權限。

+0

還有一個使用熱鏈接保護的選項 - 雖然這不是一個完美的答案,但現在可以使用AWS WAF與CloudFront相結合。我同意你的回答,並建議使用簽名URL來代替 - 但是如果將該功能添加到網站很棘手,請參閱在WAF中檢查可能更直接。 – alexjs