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 构建虚拟主机动静分离站点