AWS S3 行为 - 本地主机 v/s Elastic Beanstalk?

Posted

技术标签:

【中文标题】AWS S3 行为 - 本地主机 v/s Elastic Beanstalk?【英文标题】:AWS S3 behaviour - Localhost v/s Elastic Beanstalk? 【发布时间】:2021-06-13 01:31:40 【问题描述】:

我构建了一个网络应用程序并在本地进行了测试,一切似乎都运行良好。然后,我尝试将应用程序部署到 AWS Elastic Beanstalk。这是我开始遇到以下行为的时候-

    重新部署后,我可以打开一次登录页面。 当我尝试离开着陆页时,总是收到504 Bad Gateway 错误。 如果没有重新部署,我无法打开登录页面,也就是说,我也开始在登录页面上收到 504 错误。

我已经为此苦苦挣扎了一段时间,我对根本原因的最佳猜测是,当我尝试导航时,它与我的应用程序对 AWS S3 的 HeadObjectCommand + GetObjectCommand 调用有关到其他页面。在我的 EB 日志中,我可以看到这些调用似乎返回了 403 Forbidden 错误。这很奇怪,因为我在 Elastic Beanstalk 中设置了环境变量并重新检查了大约 10 次。当我在本地环境中测试应用程序时,这些调用工作非常顺利。

此外,我不确定为什么一旦我在其他页面上收到 403 错误,我什至无法打开目标网页。

我不知道如何进一步调查这个问题,以及我能做些什么来让它发挥作用。

我错过了什么?我怎样才能找出问题所在并努力解决它?我很乐意及时提供可能需要的更多详细信息。

【问题讨论】:

【参考方案1】:

好的,我想通了。

This article from AWS 得到了我想要的答案。

基本上,我的错误在于认为我的应用程序将通过我创建并授予 AdministratorAccess 的 IAM 用户访问 AWS S3。相反,Elastic Beanstalk 有自己的 IAM 配置文件,需要根据您的存储桶/对象策略授予必要的权限,然后才能访问这些文件。根据我收集的信息,此过程根本不使用我创建的 IAM 用户配置文件。哦,好吧。

【讨论】:

以上是关于AWS S3 行为 - 本地主机 v/s Elastic Beanstalk?的主要内容,如果未能解决你的问题,请参考以下文章

只能从我的 ElasticBeanStalk 实例访问 AWS S3 存储桶

当文件到达 NAS 时如何将文件从本地 NAS 移动到 AWS S3

无需通过 S3 控制台即可将 AWS S3 存储桶内容下载到本地

AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动静分离站点

我可以从本地主机上传到 AWS S3,但不能从我的 AWS Elastic BeanStalk 实例上传?

AWS S3-错误:无法获取本地发行者证书