Amazon-Web-Services

限制特定網站使用者訪問 S3 儲存桶文件夾?(不使用 IAM 使用者)

  • November 18, 2018

我有一個使用者需要登錄的網站。他們可以上傳和刪除自己的圖片,但這些圖片應該是私有的,所以圖片沒有設置為任何人都可以查看的公開。

我知道我們可以使用 IAM 策略來限制不同 IAM 使用者對 S3 儲存桶中不同文件夾的訪問。但是網站使用者只是數據庫中記錄的普通註冊使用者(可能是MySQL),他們不是IAM使用者。

在不需要每個網站使用者的 IAM 使用者的情況下進行設置的邏輯是什麼?有什麼好的例子可以推薦嗎?或者我想太多了,有更簡單的方法來設置這種限制?

在此先感謝您的任何建議。

另一種選擇是完全不使用 IAM 角色和憑證並使用**S3 預簽名 URL**。使用預簽名 URL,您可以創建一個安全的、有時間限制的圖像連結,從而可以在未經身份驗證的情況下訪問 S3 中的其他私有對象。換句話說:

  • 您的 S3 對像都是私有的,除了網路伺服器之外沒有人可以訪問它們。
  • 當使用者登錄時,您會為他的圖像生成預簽名的 URL。這些 URL 將使使用者可以臨時訪問他的內容(例如,有效期為 1 小時)。
  • 當連結過期時(例如 1 小時後),它不再提供對使用者圖像的訪問。

這樣,您就可以在沒有任何 IAM 使用者或網站使用者的 IAM 角色的情況下逃脫。

這是一個關於如何實現它的簡單展示:S3 Pre-signed URL demo

您也可以使用預簽名的 URL 來上傳圖片,但這有點複雜。使用標准上傳方法將圖像上傳到您的伺服器可能更容易,伺服器將它們上傳到 S3。

這是一種比使用 Cognito 更受限制的方法,但它可能更容易實現。

希望有幫助:)

引用自:https://serverfault.com/questions/940409