限制对 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 实例

Elastic Beanstalk 弹性负载均衡器名称

使用 Ruby 2.0、Rails 4.1、nginx 更改 Elastic Beanstalk 的文件大小限制

AWS Elastic beanstalk:使用 docker 镜像时如何设置 ulimit