如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?

Posted

技术标签:

【中文标题】如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?【英文标题】:How can I restrict access to my PHP elastic beanstalk environment by IP? 【发布时间】:2016-10-22 00:02:51 【问题描述】:

我最近将我在本地托管的一个测试 php 站点移到了 AWS 服务器上。

之前,我通过 .htaccess 文件限制对我的网站的访问,尽管自从使用弹性 beanstalk 后这似乎不起作用。

限制对我的网站的访问仅限于指定范围的 IP 的最佳方法是什么?

【问题讨论】:

为什么不尝试找出 .htaccess 不起作用的原因呢?这可能很简单,就像在 Apache 配置中使用 AllowOverride All 启用 .htaccess 一样。 apache 在本地和在云服务器上的工作方式没有什么不同。但是在某些 Apache 发行版中默认情况下没有打开某些功能,而 2.4 上的 .htacesss 就是其中之一。 @PanamaJack 原因几乎可以肯定是因为 Apache 服务器位于负载均衡器后面,并且 OP 没有将其配置为检查 x-forwarded-for 标头以获取用户的真实 IP。 @MarkB 是的,如果它位于 LB 后面,那确实有意义,因为它总是会看到 LB ip。他可以轻松地调整他的规则以查找 x-forwarded -for,但他没有发布它们。 :) 【参考方案1】:

AWS 有一个非常好的防火墙,位于 EC2 实例的前面。那将是我将通过 IP 限制访问的地方。

AWS 称他们为 Security Groups

安全组充当控制一个或多个实例的流量的虚拟防火墙。当您启动一个实例时,您会将一个或多个安全组与该实例相关联。您向每个安全组添加规​​则,以允许进出其关联实例的流量。您可以随时修改安全组的规则;新规则会自动应用于与安全组关联的所有实例。当我们决定是否允许流量到达某个实例时,我们会评估与该实例关联的所有安全组中的所有规则。

【讨论】:

我已经尝试过这种方式,但限制入站似乎会扼杀我实例的健康 @Luke4792 您需要修改附加到弹性负载均衡器的安全组,而不是附加到 EC2 实例的 SG。附加到 EC2 实例的 SG 应该有一个规则,允许来自附加到 ELB 的 SG 的入站访问。 我在哪里可以找到允许我在已部署的实例上更改弹性负载均衡器 SG 的选项? 您的 ELB AND EC2 实例必须添加一个 SG。您无需重新启动即可进行更改。

以上是关于如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?的主要内容,如果未能解决你的问题,请参考以下文章

阿里云弹性公网IP(EIP)的使用限制

我应该如何限制我的 Elastic Beanstalk 环境的负载平衡 Web 流量?

使用安全组限制 ElasticBeanstalk 应用程序

弹性IP AWS EC2阻止Web抓取

当我的 aws lambda 函数执行时如何选择弹性 IP

如何通过 Cloudformation 将弹性 IP 附加到 Nat 网关