Ubuntu
創建可自動訪問私有 S3 的 Amazon EC2 實例
我在想。假設我在私有 S3 儲存桶中有一個文件,然後部署一個 EC2 實例,該實例在其 rc.local 中有類似的內容:
獲取http://privateamazons3url.com
如何使我自動部署的 EC2 實例可以訪問我的私有 S3 儲存桶,而無需通過 AWS 控制面板手動顯式添加它。
我問的原因是因為我打算使用快照圖像從另一台伺服器上的 python boto 腳本遠端部署我的 EC2 實例,並且快照圖像將包括從我的私有 S3 儲存桶下載文件。
選項1
如果您的新實例在啟動後很快就會下載文件,那麼您可以創建一個有時間限制的公共文件:
- 為要下載的文件生成限時 URL。請參閱http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_QSAuth.html
- 啟動新實例,在使用者數據中傳遞生成的 URL。
- 在您的新實例中,讀取使用者數據並下載文件。
通過執行上述操作,您的 EC2 實例不需要任何憑證。但是,您的公共 URL 會在短時間內公開。
選項 2
在 EC2“角色”中啟動您的新實例。請參閱http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances
當您使用 EC2 角色時,您的實例會定期向其提供自動生成、自動過期的訪問密鑰。因此,您不必在伺服器上保存憑據。相反,您的 AWS 客戶端將不斷向 AWS 請求使用新密鑰,這些密鑰會隨著時間的推移而變化。
這樣,您可以為您的 EC2 角色提供允許 S3 訪問您的文件的 IAM 策略。