2013-01-08 75 views
1

亞馬遜CloudFront的定製起源軌據我瞭解,與CloudFront的自定義原始服務器只有CloudFront的是能夠從我的網站的網址訪問文件的工作原理:與認證

如:www.domain.com/hello.html

但是,我的網站有一個登錄要求,以查看hello.html。我如何擁有登錄機制,並使用自定義源服務器仍然在我的真實hello.html頁面中緩存cloudfront?

我使用Ruby on Rails btw,但這也適用於其他堆棧。

回答

1

我敢肯定,這是不可能的。如您所說,CloudFront必須能夠訪問該文件才能提供並緩存該文件。我從來沒有看到讓CloudFront使用密碼訪問文件的選項。

一個想法:也許你可以在你要求用戶輸入密碼之前檢查你的Rails應用程序,如果請求來自CloudFront(我確定有一些標題指示),如果是,繞過登錄要求?

編輯:

它說,在docs

Do not configure your origin server to request client authentication. 

有一點我敢肯定,集雖然是用戶代理。檢查user_agent =~ /cloudfront/i並繞過驗證?

+0

感謝您的回答。我會將其標記爲已接受!您的解決方法似乎是唯一一個讓我更容易理解私人內容使用情況的解決方案。 – sambehera

+0

另一件事也是可能的..哪些是我想要做的事情...是:1>將Cloudfront更新爲CNAME像我的DNS服務器中的static.domain.com ..所以所有static.domain.com/x.html去cloudfront .. 2>設置S3作爲原始服務器,並使任何人都無法訪問,除了cloudfront和我的網絡服務器(安全S3)3>將文件寫入S3並使用Amazon API以編程方式從我的Rails站點生成帶N日過期的簽名(安全)URL。這樣我可以將登錄用戶重定向到我的「已簽名」URL並強制匿名用戶登錄.. – sambehera

+0

另外,因爲簽署的網址static.domain.com/x7353936.html過幾天..人們不能使用它繞過登錄太長..這是足夠安全的我的網站。 – sambehera