2015-09-30 182 views
5

我在Amazon S3中創建了一個存儲桶,並已上傳2個文件並將其公開。我有我可以從互聯網上的任何地方訪問它們的鏈接。我現在想要限制誰可以下載這些文件。有人可以幫我解決這個問題。我確實嘗試了文檔,但感到困惑。亞馬遜S3下載認證

我希望在使用公共鏈接進行下載時,它應該要求提供某些憑據或某物以在此時對用戶進行身份驗證。這可能嗎?

回答

9

默認情況下,Amazon S3中的所有對象都是私有的。然後,您可以添加權限,以便人們可以訪問您的對象。這可以通過以下方式進行:

  • 對單個對象
  • 水桶政策
  • IAM用戶和組
  • 預簽名URL

訪問控制列表的權限,只要在這些方法中至少有一個授予訪問權限,您的用戶將能夠從Amazon S3訪問對象。

1.訪問控制列表上的各個對象

在亞馬遜S3管理控制檯Make Public選項將授予Open/Download權限,所有互聯網用戶。這可以用來授予對特定對象的公共訪問權限。

2.剷鬥政策

Bucket Policy可用於授權給整個桶或桶的一部分。它也可以用來指定訪問限制。例如,策略可以使存儲桶中的特定目錄對於特定IP地址範圍內的用戶,在一天中的特定時間以及僅在通過SSL訪問存儲桶時向公共用戶公開。

桶策略是在必須爲每個單獨對象指定權限的情況下授予公衆訪問許多對象(例如特定目錄)的好方法。它通常用於從S3存儲桶中提供的靜態網站。

3 IAM用戶和組

這類似於定義鬥策略,但權限分配給用戶的特定用戶或組。因此,只有那些用戶纔有權訪問這些對象。用戶在訪問對象時必須進行身份驗證,因此這在通過AWS API訪問對象時最爲常用,例如使用AWS Command-Line Interface (CLI)中的aws s3命令。

與提示進行身份驗證相比,用戶在進行API調用時必須提供身份驗證。這樣做的一個簡單方法是將用戶憑據存儲在本地配置文件中,在調用S3 API時CLI將自動使用該配置文件。

4。預簽名URL

Pre-Signed URL可用於授權訪問S3對象爲「覆蓋」的訪問控制的一種方式。一個通常爲私人的對象可以通過追加到期時間和簽名通過URL訪問。這是在不需要Web服務器的情況下提供私人內容的好方法。

通常情況下,預先簽名的URL由應用程序在希望授予對象訪問權時構建。例如,假設您有一個照片共享網站,並且用戶已經通過了您的網站的驗證。您現在希望在網頁中顯示他們的圖片。這些圖片通常是私密的,但是您的應用程序可以生成預先登記的網址,以授予他們臨時訪問圖片的權限。預先簽名的網址將在特定日期/時間後過期。