Spring Boot应用程序不在AWS Elastic Beanstalk中进行一次身份验证

时间:2019-07-02 20:35:23

标签: java spring amazon-web-services spring-boot aws-sdk

我有一个正在开发的适用于AWS的REST API Spring Boot应用程序。它是在本地计算机上开发的,通过该本地计算机,即使在本地计算机上且URL为本地主机,我们也能够提取实时AWS数据。我们已经完成了大部分开发工作,并准备将其迁移到云中。但是,现在我们创建了一个JAR,将其托管在AWS Elastic Beanstalk上,并调用API URL,AWS现在为我们提供了500 Access Denied Error。

当前,我们的本地应用程序正在通过我们项目的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

1 个答案:

答案 0 :(得分:1)

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