Java Spring引导应用程序在AWS Elastic Beanstalk中未进行一次身份验证

Java Spring引导应用程序在AWS Elastic Beanstalk中未进行一次身份验证,java,spring,amazon-web-services,spring-boot,aws-sdk,Java,Spring,Amazon Web Services,Spring Boot,Aws Sdk,我有一个正在开发的用于AWS的RESTAPI Spring引导应用程序。它是在一台本地机器上开发的,通过该本地机器,我们能够提取实时AWS数据,即使它在本地机器上,URL是localhost。我们已经完成了大部分开发,并准备将其移动到云端。然而,现在我们创建了一个JAR,将其托管在AWS Elastic Beanstalk上,并调用API URL,AWS现在给出了一个500个拒绝访问错误 目前,我们的本地应用程序正在通过项目的application.properties文件中的变量进行身份验证。

我有一个正在开发的用于AWS的RESTAPI Spring引导应用程序。它是在一台本地机器上开发的,通过该本地机器,我们能够提取实时AWS数据,即使它在本地机器上,URL是localhost。我们已经完成了大部分开发,并准备将其移动到云端。然而,现在我们创建了一个JAR,将其托管在AWS Elastic Beanstalk上,并调用API URL,AWS现在给出了一个500个拒绝访问错误

目前,我们的本地应用程序正在通过项目的application.properties文件中的变量进行身份验证。这些似乎不适用于云环境。我们还尝试将Elastic Beanstalk中的环境变量设置为application.properties中的相同值,但仍然返回500错误

这是我们从AWS返回的确切错误

{
    "timestamp": "2019-07-02T20:23:31.400+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Access Denied (Service: S3, Status Code: 403, Request ID: 66CA2FE6CEE7A5D4)",
    "path": "/api/s3/buckets/list"
}
这是application.properties文件,我在其中放置了安全密钥

cloud.aws.credentials.accessKey=XXXXXXXXXXXXX
cloud.aws.credentials.secretKey=XXXXXXXXXXXXXXX
cloud.aws.region.static=us-east-1

我认为Elastic Beanstalk可能没有读/写角色,通过它可以访问S3。在AWS中运行时,您不需要凭据,一切都取决于角色(权限)

请提供在AWS客户端本地实例化凭据的代码。它需要修改以在AWS环境中使用。我的意思是在应用程序中创建S3客户端的位置,对不起!应该是这样的,使用默认凭据创建S3客户端:@Compass我不会在任何地方实例化凭据,只是将它们放在application.properties文件中。我对AWS客户端的调用只是S3Client.builder().region(region_VAR.build())这就行了way@Compass我还应该提到,我的凭据也被加载到
~/.aws/credentials
文件中,因此它们也可以从那里提取。这是正确的-当我在那里加载web应用程序时,创建了一个弹性豆茎角色,但我没有给该角色任何权限,只是访问它本身当我给它S3FullAccess时,它就能够提取和检索数据了。