2016-08-01 91 views
0

背景:亞馬遜CloudFront的 - 保護視頻與簽名網址

亞馬遜的Cloudfront視頻傳輸與S3存儲:我使用的是自定義的360度視頻播放器。玩家只需鏈接到MP4視頻。視頻不是流式傳輸,而是直接與漸進式下載鏈接。

ISSUE要解決的問題--->登錄網址

1)視頻應該只能從其他網站播放從我的網站後面,而不是。否則,有人會直接鏈接到視頻文件,我將不得不支付亞馬遜流量。

2)在哪裏以及如何插入CloudFront「簽名的URL」策略?大多數提示建議使用連接到CloudFront的「簽名URL」。但是我不能把這些難題放在一起,太混亂了,因爲我只是一個半自動化的自學成才的人。所以..:

2A - >在哪裏插入CloudFront策略?在S3控制檯上?或者在哪裏?

2B - >究竟要寫什麼,請。提供一個工作示例!

2C - >如何將一個特定的域

3)我還懷疑保護文件權限的S3存儲桶是不夠的,CloudFront的可能會忽略允許規則。那是對的嗎?

指導:

如果實在不行,我找了一份付出,1小時的Skype指導做好我們同CloudFront的簽名URL設置1個視頻一起,使用屏幕共享會話。所有的一步一步的解釋,所以我可以自己重複其他視頻的過程。 Skype會議對於預算敏感的Kickstarter/Indiegogo項目來說是可以承受的。

我很欣賞任何幫助,真的!謝謝!

+1

您是否閱讀了本文? https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html – error2007s

+0

是的,但我不明白在哪裏插入策略。它沒有說,或者我錯過了......(說實話,他們的文檔對於一個只想創建一些安全視頻的小創業公司來說太困難和困惑了。) – James

+0

你知道在哪裏插入政策? – James

回答

0

1)視頻只能從我的網站播放,而不能從其他網站播放。否則,有人會直接鏈接到視頻文件,我將不得不支付亞馬遜流量。

沒錯,所以你的網站需要運行在一個可以動態生成鏈接到視頻的HTML頁面的平臺上。

2)在哪裏以及如何插入CloudFront「簽名的URL」策略?大多數提示建議使用連接到CloudFront的「簽名URL」。但是我不能把這些難題放在一起,太混亂了,因爲我只是一個半自動化的自學成才的人。所以..:

政策是用來生成簽名,並且它是作爲你生成鏈接的一部分,如果你使用一個custom policy ......它看起來像&Policy=...隨後的base64編碼版本政策。

它在URL嗎?!是。簽名使策略防篡改。這嵌入在您的代碼在每次加載頁面時生成的簽名URL中。如果你使用罐裝策略,那麼你不保存/發送任何地方。您將其用於簽名計算,然後將其丟棄,因爲CloudFront已知道它包含的內容,因爲它匹配正在創建的請求(否則它無效,請求正確失敗)。

2A - >在哪裏插入CloudFront策略?在S3控制檯上?或者在哪裏?

沒有這樣的。往上看。

2B - >究竟寫什麼,請。提供一個工作示例!

有一個工作示例in the documentation

Stack Overflow沒有免費的代碼免費服務。

2C - >如何將一個特定的域

這不完全是如何工作的。通過域來保護內容並不能保證內容的安全,因爲這可能是僞造的。

您的網站提供簽名的鏈接。這些鏈接是有效的,因爲它們是從你那裏獲得的。他們只需要幾秒鐘 - 足夠長的時間來開始下載 - 然後他們到期...所以即使有人與他們熱鏈接,你也不在乎,因爲鏈接已經陳舊了。但這就是爲什麼您在每次加載頁面時生成它們的原因。

或者,通過CloudFront爲您的整個網站提供服務,然後使用CloudFront簽名的Cookie允許任何人登錄到您的網站訪問您的受限內容。

3)我還懷疑保護S3存儲桶中的文件權限是不夠的,CloudFront可能會忽略該權限規則。那是對的嗎?

不,CloudFront沒有特權訪問您的存儲桶,除非您安排它。 CloudFront原始訪問身份爲其提供訪問存儲桶中對象的必要權限。

閱讀Serving Private Content through CloudFront

+0

哦,哇,非常感謝你這麼詳細的見解。圖片越來越清晰。說實話,AWS文檔跳到太深,沒有解釋清楚的邏輯。至少我現在開始瞭解這個機制。我希望這個頁面能夠幫助其他新的AWS用戶。 – James

+0

但是,我不明白爲什麼你可以限制在Amazon S3上的域名訪問,但不在CloudFront上。這裏是S3文檔的一句話,對我來說,S3好像很容易就允許域名限制。QUOTE --->「爲了允許從您的網站對這些對象進行讀取訪問,您可以添加一個存儲桶策略,該存儲桶策略允許s3:GetObject權限使用aws:referer鍵的條件,即get請求必須來自特定的網頁。 「---有沒有辦法讓這種方法在CloudFront上也能工作? – James

+0

這是訪問控制的原始機制。它不能真正保證你的內容不被下載,但確實使原始的盜鏈策略變得困難。可以在CloudFront中使用[Web應用程序防火牆](https://aws.amazon.com/waf/)完成此功能,或者如果內容在S3上公開並且不使用CloudFront身份驗證,則可以在S3中啓用此功能並配置該存儲桶作爲「自定義」(而不是「S3」)來源,並將CloudFront分配的緩存行爲設置中的Referer頭部列入白名單。 –