如何通过 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 环境的访问?的主要内容,如果未能解决你的问题,请参考以下文章