web-dev-qa-db-ja.com

Amazon認証情報を取得できません

クラウドでホストされているSpringブートMavenアプリケーション(Pivotal Web Services)の資格情報を提供して、AmazonS3にアップロードできるようにしようとしています。ただし、次を使用して資格情報を取得しようとするたびに:

DefaultAWSCredentialsProviderChain credentialProviderChain = new DefaultAWSCredentialsProviderChain();
TransferManager transferManager = new TransferManager(credentialProviderChain.getCredentials());

それは言う

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 
[Request processing failed; nested exception is com.amazonaws.AmazonClientException: Unable
to load AWS credentials from any provider in the chain] with root cause
2016-01-28T23:55:38.55+0000 [APP/0]      OUT com.amazonaws.AmazonClientException: 
Unable to load AWS credentials from any provider in the chain

資格情報をbeans.xmlファイルとapplication.propertiesファイルのどちらで定義する必要があるかについて少し混乱しています。しかし、私は両方を無駄にしようとしました。誰かが私を正しい方向に向けることができますか?

7
Tometoyou

ドキュメントをチェックしてください! http://docs.aws.Amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html

次の順序で認証情報を検索するAWS認証情報プロバイダーチェーン:

  • 環境変数-AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEY(.NETを除くすべてのAWS SDKとCLIで認識されるため推奨)、またはAWS_ACCESS_KEYとAWS_SECRET_KEY(Java SDK)でのみ認識される)
  • Javaシステムプロパティ-aws.accessKeyIdおよびaws.secretKey
  • すべてのAWSSDKとAWSCLIによって共有されるデフォルトの場所(〜/ .aws/credentials)にある認証情報プロファイルファイル
  • AmazonEC2メタデータサービスを通じて配信されるインスタンスプロファイルの認証情報

ここにあるより一般的なドキュメント: http://docs.aws.Amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/credentials.html

13

このアプローチはうまくいきました:

$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
3
Raj Hassani