我有一个正在开发的适用于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
答案 0 :(得分:1)
我认为Elastic Beanstalk可能没有读写角色来访问S3。在AWS中运行时,您不需要凭证,一切都取决于角色(权限)