限制对 Elastic Beanstalk 的 HTTP 访问
Posted
技术标签:
【中文标题】限制对 Elastic Beanstalk 的 HTTP 访问【英文标题】:Restrict HTTP Access to Elastic Beanstalk 【发布时间】:2013-06-17 19:29:53 【问题描述】:是否可以将对 Elastic Beanstalk 应用程序的 HTTP 访问限制为仅限某些 IP 地址?我已经尝试向我的环境的安全组添加规则,但这些似乎没有任何效果。这是因为所有 HTTP 流量都通过弹性负载均衡器路由,不在安全组?
【问题讨论】:
IP 过滤受限于 ELB。由于从 ELB 到您的实例的连接来自内部地址)虽然 IP 地址在标头 (X-Forwarded-For
) 中传递,但如果您尝试使用它进行 ip 过滤,它并不是最可靠的。
【参考方案1】:
我已将对 Elastic Beanstalk 应用程序的 HTTP 访问限制为仅限某些 IP 地址。 以下是我的程序。
在 VPC(亚马逊虚拟私有云)中创建新的 beanstalk 环境。 请阅读以下文档。Using AWS Elastic Beanstalk with Amazon VPC Example: Launching an AWS Elastic Beanstalk Application in a VPC 注意:上个月我尝试使用 AWS Tookit for Eclipse 在 VPC 中创建一个新的 beanstalk 环境(Tomcat) .但是由于 AWS Toolkit for Eclipse 的错误,我无法创建新的 beanstalk 环境。 最后,我可以使用 elastic-beanstalk-create-environment 命令创建一个新的 beanstalk 环境。因此我推荐使用 elastic-beanstalk-create-environment 命令。
创建一个新的网络 ACL(VPC 的功能)并打开入站选项卡并配置以限制源 IP 地址。 将此网络 ACL 设置为具有 beanstalk 的 ELB 的 VPC 的子网。
【讨论】:
【参考方案2】:我能够从安全组限制对某些 IP 的访问。 如果您查看应用程序的 EC2 实例,则安全组指向另一个实例(见下文)。
找到另一个安全组,它是弹性负载均衡器之一。如果您将入站 IP 规则添加到此 SG,它将应用于您的应用程序。
希望对您有所帮助。
【讨论】:
【参考方案3】:我能够通过以下 X-FORWARDED 限制限制对文件夹的访问:
<Directory "/var/www/html/folder_name">
SetEnvIf X-FORWARDED-FOR x.x.x.x allow
SetEnvIf X-FORWARDED-FOR a.a.a.a allow
Order deny,allow
Deny from all
Allow from env=allow
</Directory>
这是在 httpd.conf 文件中完成的,但我希望它也可以在 .htaccess 文件中使用。但是,据推测我没有使用 ELB,只使用了一个实例以及 AWS 可能已经实施或尚未实施的负载平衡。
希望这会有所帮助。
【讨论】:
X-FORWARDED-FOR 很容易被欺骗以上是关于限制对 Elastic Beanstalk 的 HTTP 访问的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何限制我的 Elastic Beanstalk 环境的负载平衡 Web 流量?
限制从 API Gateway(客户端证书)访问 Elastic Beanstalk
将 EC2 安全组限制为 Elastic Beanstalk 实例