我有一个正在开发的 AWS REST API Spring Boot 应用程序。它是在本地计算机上开发的,通过该本地计算机,我们能够拉取实时 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"
}
这是我放置安全 key 的 application.properties 文件
cloud.aws.credentials.accessKey=XXXXXXXXXXXXX
cloud.aws.credentials.secretKey=XXXXXXXXXXXXXXX
cloud.aws.region.static=us-east-1
最佳答案
我认为 Elastic Beanstalk 可能没有可以访问 S3 的读/写角色。在 AWS 中运行时,您不需要凭证,一切都取决于角色(权限)
关于java - Spring Boot 应用程序未在 AWS Elastic Beanstalk 中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859714/