小编vij*_*thi的帖子

spring-cloud-aws从EC2运行时无法将文件放入S3

我试图通过我的Spring Boot应用程序使用AmazonS3Client将一些文件放入S3存储桶中.在AWS中,我创建了一个IAM用户(test_user1)并授予该用户S3完全访问权限.同样在S3中,我向该用户授予了"s3:*"操作.在我的配置文件中为cloud.aws.credentials.accessKey和cloud.aws.credentials.secretKey指定了相同的用户凭据.

当我从本地计算机运行应用程序时,它工作正常.我可以在S3存储桶中放入多个文件并查看文件.

但是,当从AWS EC2实例运行相同的应用程序时,我会在应用程序启动时收到以下错误:

引起:org.springframework.beans.BeanInstantiationException:无法实例化org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryFactoryBean ]:工厂方法'stackResourceRegistryFactoryBean'抛出异常; 嵌套异常是com.amazonaws.AmazonServiceException:User:arn:aws:iam :: 560600000009:user/test_user1无权执行:cloudformation:DescribeStackResources(Service:AmazonCloudFormation; Status Code:403; Error Code:AccessDenied;

从EC2实例中运行的代码访问S3时,我还需要设置其他东西吗?我没有使用Amazon Cloud Formation.

以下是我的项目的样子:

build.gradle:

compile 'org.springframework.cloud:spring-cloud-aws-autoconfigure:1.0.3.RELEASE'
compile 'org.springframework.cloud:spring-cloud-aws-context:1.0.3.RELEASE'
Run Code Online (Sandbox Code Playgroud)

application.yml:

bucket: test-bucket-1
cloud.aws.credentials.accessKey: AxxxxxxxxxxxxxxA
cloud.aws.credentials.secretKey: jxxxxxxxxxxxxxxR
cloud.aws.credentials.instanceProfile:  true
Run Code Online (Sandbox Code Playgroud)

AmazonS3Client在我的服务类中自动装配.

@Autowired
public FileService(AmazonS3Client s3Client) {..}
Run Code Online (Sandbox Code Playgroud)

amazon-s3 spring-boot spring-cloud

11
推荐指数
1
解决办法
3507
查看次数

标签 统计

amazon-s3 ×1

spring-boot ×1

spring-cloud ×1