Ubuntu

創建可自動訪問私有 S3 的 Amazon EC2 實例

  • February 19, 2013

我在想。假設我在私有 S3 儲存桶中有一個文件,然後部署一個 EC2 實例,該實例在其 rc.local 中有類似的內容:

獲取http://privateamazons3url.com

如何使我自動部署的 EC2 實例可以訪問我的私有 S3 儲存桶,而無需通過 AWS 控制面板手動顯式添加它。

我問的原因是因為我打算使用快照圖像從另一台伺服器上的 python boto 腳本遠端部署我的 EC2 實例,並且快照圖像將包括從我的私有 S3 儲存桶下載文件。

選項1

如果您的新實例在啟動後很快就會下載文件,那麼您可以創建一個有時間限制的公共文件:

  1. 為要下載的文件生成限時 URL。請參閱http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_QSAuth.html
  2. 啟動新實例,在使用者數據中傳遞生成的 URL。
  3. 在您的新實例中,讀取使用者數據並下載文件。

通過執行上述操作,您的 EC2 實例不需要任何憑證。但是,您的公共 URL 會在短時間內公開。

選項 2

在 EC2“角色”中啟動您的新實例。請參閱http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances

當您使用 EC2 角色時,您的實例會定期向其提供自動生成、自動過期的訪問密鑰。因此,您不必在伺服器上保存憑據。相反,您的 AWS 客戶端將不斷向 AWS 請求使用新密鑰,這些密鑰會隨著時間的推移而變化。

這樣,您可以為您的 EC2 角色提供允許 S3 訪問您的文件的 IAM 策略。

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