2010-03-23 39 views
1

想象一下以下的用例:確保S3通過自己的應用程序

你必須託管文件與S3一個大本營風格的應用程序。帳戶都有自己的文件,但存儲在S3上。

因此,開發人員如何確保文件安全,以便賬戶1的用戶無法以某種方式獲取賬戶2的文件?

我們正在談論Rails,如果這是一個幫助。

+0

如果我沒有錯誤s3只是一個存儲引擎。如果用戶從亞馬遜的s3服務器獲取目錄,那麼您將無法限制訪問。我認爲密碼是這個問題的錯誤方法。 – rook 2010-03-23 16:59:11

回答

0

如果您想限制對這些遠程資源的控制,您可以通過您的應用程序代理這些文件。對於像S3,這可以打敗你正在嘗試做的目的,但它仍然讓你保持數據與亞馬遜和限制訪問。

你應該小心使用這種方法,因爲它可能會導致ruby線程在代理文件時阻塞,這可能會成爲應用程序的真正問題。

+1

它不必由RoR直接代理。下面的HTTP服務器可以配置做代理和回報率將只提供某種安全證書(可能是一個cookie值來測試)。這種設置可能是相當複雜的,取決於所使用的HTTP服務器上,需要訪問的服務器配置,並可能需要額外的幫助(如FastCGI的認證應用程序或一些認證掛鉤)。但是,在某些情況下,性能增益可能是值得的。 – 2010-03-23 19:00:36

+0

我不知道是否一個簡單的代理 - >服務器端重定向將提供足夠的阻止絕大多數閒置衝浪者,而不是去整個豬... – 2010-03-23 20:24:21

0

即成使用EC2實例

的文件如果您設置S3鬥私,然後啓動EC2實例,您可以通過EC2服務於S3文件,使用EC2實例驗證權限根據您的應用程序的規則。因爲沒有收費EC2從S3轉移到/(同一區域內),你不必加倍亞馬遜你的帶寬消耗成本。

+0

我真的不想有一個桶每個帳戶,因爲我認爲這贏了「T比例特別好... – 2010-03-23 20:23:27

+0

你仍然可以保持所有對象在一個S3桶。 – 2010-03-23 22:00:03

相關問題