2015-10-01 50 views
8

我想通過我的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) {..} 

回答