2013年6月5日

AWS Java SDKのアクセスキー・シークレットキーの指定

AWS SupportAPI のサンプルコードを見ていたら、APIのアクセスキー・シークレットキーの指定が以下のようになっていました。
AWSSupportClient support = new AWSSupportClient(new DefaultAWSCredentialsProviderChain());

JavaでAPIのテストするときはプロパティファイルを読み込んでいたので、「これは何ぞや?」ということで、ソースコードを見てみました。

AWSCredentialsProviderChainのサブクラスで、EnvironmentVariableCredentialsProvider、SystemPropertiesCredentialsProvider、InstanceProfileCredentialsProviderを渡しています。
JavaDocにあるように、以下の順でCredentialを探します。
環境変数 - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
Javaのシステムプロパティ - aws.accessKeyId and aws.secretKey
EC2のインスタンスのプロファイル - インスタンスのIAM Role

こんな便利なクラスがあったのですね。

AWSCredentialsProviderのJavaDocを見るといろいろ他にも種類があります。

いままでわざわざ実装していたプロパティファイルから取得するAPI(ClasspathPropertiesFileCredentialsProvider)も実はありました。

他人のソースを見るのは勉強になりますね。

0 コメント:

コメントを投稿