2015-10-01 8 views
8

Sto provando a inserire alcuni file nel bucket S3 tramite la mia app Spring Boot utilizzando AmazonS3Client. In AWS, ho creato un utente IAM (test_user1) e ho concesso a S3 i diritti di accesso completo a questo utente. Anche in S3, ho concesso azioni "s3: *" a questo utente. Le credenziali dell'utente stesso sono specificate per cloud.aws.credentials.accessKey e cloud.aws.credentials.secretKey nei miei file di configurazione.spring-cloud-aws non è in grado di caricare file su S3 quando viene eseguito da EC2

Quando eseguo l'app dal mio computer locale, funziona correttamente. Sono in grado di mettere più file nel bucket S3 e visualizzare i file.

Ma, quando la stessa applicazione viene eseguito da un'istanza AWS EC2, ottengo errori soffietto all'avvio dell'applicazione:

Causato da: org.springframework.beans.BeanInstantiationException: Impossibile creare un'istanza org.springframework.cloud .aws.core.env.stack.config.StackResourceRegistryFactoryBean]: il metodo factory 'stackResourceRegistryFactoryBean' ha generato un'eccezione; l'eccezione nidificata è com.amazonaws.AmazonServiceException: Utente: arn: aws: iam :: 560600000009: utente/test_user1 non è autorizzato a eseguire: cloud: DescreStackResources (Servizio: AmazonCloudFormation; Codice stato: 403; Codice errore: AccessDenied;

?

c'è qualcos'altro che devo impostare quando si accede S3 dal codice in esecuzione in istanza EC2 non sto usando Formazione Amazon cloud

Ecco come il mio progetto si presenta come:.

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 nella mia classe di servizio.

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

risposta

Problemi correlati