Spring Amazon AWS S3-Bucket-Dateidownload starten - Zugriff verweigert

Ich habe eine automatisch konfigurierte AWS-, Spring Boot-Anwendung und ich versuche, einen Endpunkt einzurichten, der einfach eine bestimmte Datei aus einem bestimmten Bucket in Amazon S3 herunterlädt. Ich habe eine JPEG-Datei über die AWS-Konsole von meinem Computer in den Bucket hochgeladen. Jetzt versuche ich, diese Datei über meine Spring Boot-API herunterzuladen.

Ich erhalte den folgenden Fehler:com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;

Ich habe einen Benutzer und eine Gruppe (Benutzer ist in der Gruppe) in der AWS-Konsole erstellt. Der Benutzer / die Gruppe verfügt über vollständige Zugriffsberechtigungen für S3 sowie über Administratorzugriff. Ich habe das Access-Key / Secret-Key-Paar heruntergeladen und zu Testzwecken die Schlüssel wie unten gezeigt buchstäblich in die Datei application.properties eingefügt (die Schlüssel werden hier natürlich nicht angezeigt :)).

Ich bin verwirrt, warum mir der Zugriff immer noch verweigert wird. Ich habe eine Weile gesucht und daran gearbeitet. Ich kann anscheinend keine Lösung für dieses Problem finden, die für Spring Boot spezifisch ist. Jede Hilfe wäre sehr dankbar.

application.properties:

cloud.aws.credentials.accessKey=myaccesskey
cloud.aws.credentials.secretKey=mysecretkey
cloud.aws.credentials.instanceProfile=false
cloud.aws.stack.auto=false

cloud.aws.region.auto=true
cloud.aws.region.static=myregion

SimpleResourceLoadingBean.java:

@RestController
public class SimpleResourceLoadingBean {

    private static Logger log = LoggerFactory.getLogger(HealthMonitorApplication.class);

    @Autowired
    private ResourceLoader resourceLoader;


    @RequestMapping("/getresource")
    public String resourceLoadingMethod() throws IOException {
        log.info("IN RESOURCE LOADER");

        Resource resource = this.resourceLoader.getResource("s3://s3.amazonaws.com/mybucket/myfile.ext");

        InputStream inputStream = resource.getInputStream();

        return inputStream.toString();
    }
}

pom.xml (Nur die Abhängigkeiten, die für die Frage relevant sind)

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws</artifactId>
            <version>1.1.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-aws-autoconfigure</artifactId>
            <version>1.1.0.RELEASE</version>
        </dependency>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage