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) {..}
ありがとうございました。 –