spring-cloud-aws ist nicht in der Lage, Dateien auf S3 zu bringen, wenn sie von EC2 ausgeführt werden

8

Ich versuche, einige Dateien im S3-Bucket über meine Spring Boot-App mit AmazonS3Client zu speichern. In AWS habe ich einen IAM-Benutzer (test_user1) erstellt und diesem Benutzer S3-Vollzugriffsrechte gewährt. Auch in S3 habe ich diesem Benutzer "s3: *" -Aktionen gewährt. Die Anmeldeinformationen des gleichen Benutzers sind für cloud.aws.credentials.accessKey und cloud.aws.credentials.secretKey in meinen Konfigurationsdateien angegeben.

Wenn ich die App von meinem lokalen Computer aus starte, funktioniert es einwandfrei. Ich bin in der Lage, mehrere Dateien in S3-Bucket zu legen und die Dateien anzuzeigen.

Wenn jedoch dieselbe App von einer AWS EC2-Instanz ausgeführt wird, erhalte ich beim Start der Anwendung folgende Fehler:

wird verursacht durch: org.springframework.beans.BeanInstantiationException: Instanziieren fehlgeschlagen org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryFactoryBean ]: Die Factory-Methode 'stackResourceRegistryFactoryBean' hat eine Ausnahme ausgelöst ; verschachtelte Ausnahme ist com.amazonaws.AmazonServiceException: Benutzer: arn: aws: iam :: 560600000009: Benutzer / test_user1 ist nicht zum Ausführen berechtigt: cloudformation: DescribeStackResources (Service: AmazonCloudFormation; Statuscode: 403; Fehler Code: Zugriff verweigert;

Gibt es noch etwas anderes, das ich beim Zugriff auf S3 aus dem Code in der EC2-Instanz einstellen muss? Ich verwende nicht Amazon Cloud Formation.

So sieht mein Projekt aus:

build.gradle:

%Vor%

application.yml:

%Vor%

AmazonS3Client wird in meiner Serviceklasse automatisch gestartet.

%Vor%     
vijay sarathi 01.10.2015, 09:12
quelle

1 Antwort

15

Spring Cloud AWS versucht, CloudFormation automatisch zu konfigurieren (wenn die App in EC2 ausgeführt wird).

Ich habe diesen Fehler behoben, indem ich autoconf in application.properties deaktiviert habe

%Vor%

Lesen Sie dies für weitere Informationen Ссылка .

Und schließlich: Sorry für mein Englisch

    
Cristian Rodriguez 04.10.2015, 02:15
quelle