給那裏的所有SaaS工程師/開發人員...在Amazon S3上安全存儲/訪問SaaS客戶數據的最佳做法是什麼?
我正在構建一個SaaS產品,它將在S3上存儲客戶數據。我想知道關於安全的最佳方法是什麼?
- 讓一個IAM用戶使用桶策略。這很簡單,但數據安全性純粹由SaaS應用程序處理。如果出現故障,其他用戶可以訪問受限材料。
- 如何爲每個新客戶帳戶創建一個IAM用戶(通過IAM REST API),併爲每個存儲對象擁有對象特定的ACL?更復雜但它在S3中也增加了一層安全性。
- 還有其他方法嗎?
另外,通過SaaS應用程序提供對材料的訪問。我計劃將每個對象的'可讀名'替換爲一個GUID,以便它不容易被猜出,並使用帶有時間限制的預先簽名的URL來查看和下載它們。這是最佳做法嗎?什麼時間限制被認爲是安全和用戶友好的?
感謝
謝謝John!我在Heroku上託管,所以我只需要S3存儲。 API訪問的好處。但是,我不會將IAM用戶與客戶分享。這應該是內部的應用程序。關於桶政策,我有點困惑的答案。我需要授予對IAM用戶的存取權限。如果我授予他對存儲桶的訪問權限,他將能夠提供對象併爲客戶提供預先簽署的訪問權限。這樣,我不需要爲對象創建更多的ACL。最後,我猜想我錯誤地認爲預先提供了對所有對象的有限訪問權限。 – Whyves
Amazon S3存儲桶策略通常用於爲**所有用戶**授予訪問權限。如果您希望授予特定用戶的訪問權限,請將策略放在IAM用戶本身(而不是S3存儲桶)上。 –