web-dev-qa-db-ja.com

プライベートS3への自動アクセスを備えたAmazonEC2インスタンスを作成します

私は考えていた。プライベートS3バケットにファイルがあり、rc.localにそのようなものがあるEC2インスタンスをデプロイするとします。

GET http://privateamazons3url.com

デプロイするEC2インスタンス自動がプライベートS3バケットにアクセスできるようにするには、どうすればよいですか? AWSコントロールパネル。

私が尋ねる理由は、スナップショットイメージを使用して別のサーバーからpython botoスクリプトを使用してEC2インスタンスをリモートでデプロイすることを計画しており、スナップショットイメージにはプライベートからのファイルのダウンロードが含まれるためですS3バケット。

2
J.Zil

オプション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から継続的に使用する新しいキーを要求しますが、これは時間とともに変化します。

このようにして、ファイルへのS3アクセスを許可するIAMポリシーをEC2ロールに与えることができます。

5
Matt Houser

スナップショットのクエリ文字列でs3api情報を公開する場合は、次を使用できます。

http://docs.aws.Amazon.com/AmazonS3/latest/dev/S3_QSAuth.html

IAMを使用して、そのバケットのみへのアクセスを制限されているユーザーを作成することもできます。これにより、クエリ文字列で使用する新しいAPIキーペアが生成されます。

0
Mike