我想通過我的Spring Boot應用程序使用AmazonS3Client在S3存儲桶中放置一些文件。在AWS中,我創建了一個IAM用戶(test_user1),並授予該用戶S3的完全訪問權限。同樣在S3中,我向該用戶授予了「s3:*」動作。在我的配置文件中爲cloud.aws.credentials.accessKey和cloud.aws.credentials.secretKey指定了相同的用戶憑據。spring-cloud-aws無法將文件從S3運行時從EC2
當我從本地計算機運行應用程序時,它工作正常。我可以將多個文件放入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;
?別的東西有我在EC2實例中運行的代碼訪問S3時設置我沒有使用亞馬遜雲的形成
這裏是我的項目的樣子:
的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'
個
application.yml:
bucket: test-bucket-1
cloud.aws.credentials.accessKey: AxxxxxxxxxxxxxxA
cloud.aws.credentials.secretKey: jxxxxxxxxxxxxxxR
cloud.aws.credentials.instanceProfile: true
AmazonS3Client在我的服務類自動裝配。
@Autowired
public FileService(AmazonS3Client s3Client) {..}
謝謝克里斯,這對我很有用。 –