2016-04-12 12 views
1

S3にファイルを追加するJavaアプリケーションがあります。このアプリケーションはEC2インスタンスで実行されています。IAMロールを使用するアプリケーションをローカルでテストする

IAMの役割を使用しています。そこで、このEC2インスタンスに必要なIAMロールを関連付けました。

すべてが完璧に機能します。

しかし私のノートパソコンでアプリケーションをローカルでテストしたいと思います。私がそれをテストする必要があるときはいつでも、EC2に毎回アプリケーションをアップロードするのは難しいです。

コードを変更せずに動的に切り替えることで、ラップトップ(accesskeyとsecretKey)をテストしたり、EC2でIAMの役割を使用したりすることができますか?

答えて

1

AWS SDKは資格証明プロバイダチェーンを使用して資格情報を検索します。順序は言語によって異なりますが、一般的には、チェック:

  • 環境変数
  • ローカル構成ファイル
  • したがって
  • EC2インスタンスのメタデータ

、ローカルでアプリケーションを実行したい場合は、することができます資格情報ファイルを提供するか、資格情報を環境変数に設定してください。このコードは、EC2インスタンスと同様に、資格情報を自動的に検索します。

参考文献:

+0

我々はDefaultCredentialsProviderChainを使用する場合、これが成り立ちます。しかし、私たちはInstanceProfileCredentialsProviderを使ってIAMロールを利用しています。 http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html InstanceProfileCredentialsProviderはIAMロールを優先します – sag

+1

プロバイダチェーンの使用に切り替えます。インスタンス・プロファイル・プロバイダーが自動的に使用されます。 – tedder42

1

あなたはインスタンスのようなドッキングウィンドウを使用している場合、それは次のようになり環境変数をドッカーの実行に設定すると簡単です。

docker run --env-file=FILE 

OR

docker run -it --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY 

参考:https://hub.docker.com/r/pmcjury/aws-cli/

関連する問題