2015-10-01 24 views
8

Amazon S3クライアントを使用して、Springブートアプリケーションを通じてS3バケットにいくつかのファイルを配置しようとしています。 AWSでは、IAMユーザー(test_user1)を作成し、このユーザーにS3完全アクセス権を付与しました。また、S3では、このユーザーに「s3:*」アクションを許可しました。同じユーザーの資格情報が、自分の設定ファイル内のcloud.aws.credentials.accessKeyおよびcloud.aws.credentials.secretKeyに指定されています。EC2から実行すると、spring-cloud-awsがS3にファイルを置くことができません

私のローカルコンピュータからアプリケーションを実行すると正常に動作します。 S3バケットに複数のファイルを置いてファイルを見ることができます。

しかし、同じアプリはAWS EC2インスタンスから実行されたとき、私はアプリケーションの起動時に怒鳴るのエラーを取得:org.springframework.beans.BeanInstantiationException:によって引き起こさ

はorg.springframework.cloudをインスタンス化に失敗しました.aws.core.env.stack.config.StackResourceRegistryFactoryBean]:ファクトリメソッド 'stackResourceRegistryFactoryBean'が例外をスローしました。入れ子にされた例外はcom.amazonaws.AmazonServiceExceptionです。ユーザー:arn:aws:iam :: 560600000009:user/test_user1は実行を許可されていません。cloudformation:DescribeStackResources(サービス:AmazonCloudFormation、ステータスコード:403、エラーコード:AccessDenied;

?。

build.gradle:

私はEC2インスタンスで実行されているコードからS3にアクセスする際に設定する必要が何か他のものは、私はアマゾン雲の形成を使用していないあり

ここでは、私のプロジェクトがどのように見えるかです

compile 'org.springframework.cloud:spring-cloud-aws-autoconfigure:1.0.3.RELEASE' 
compile 'org.springframework.cloud:spring-cloud-aws-context:1.0.3.RELEASE' 

application.yml:AmazonS3Clientは私のサービスクラスにautowiredさ

bucket: test-bucket-1 
cloud.aws.credentials.accessKey: AxxxxxxxxxxxxxxA 
cloud.aws.credentials.secretKey: jxxxxxxxxxxxxxxR 
cloud.aws.credentials.instanceProfile: true 

@Autowired 
public FileService(AmazonS3Client s3Client) {..} 

答えて

15

Spring Cloud AWSはCloudFormationを自動設定しようとします(アプリケーションがEC2で実行されているとき)。

私はより多くの情報http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_automatic_cloudformation_configurationのためにこれを読んでapplication.propertiesに

cloud.aws.stack.auto=false 

をこのエラー無効にautoconfを解決しました。

最後に私の英語には申し訳ありません

+0

ありがとうございました。 –

関連する問題