5

我们有一个在亚马逊的 Beanstalk 上运行的系统。我们希望将对服务器的访问限制为仅 HTTPS。在环境设置上阻止 HTTP 时 - 它阻止通过 beanstalk DNS 访问。但是,如果有人知道任何服务器的公共 IP(或名称) - 他可以直接通过 HTTP 访问它们。似乎LB将请求转发到端口80,因此我们无法更改安全组并删除端口80。有没有简单的方法,将HTTP访问限制为仅来自LB?谢谢

4

3 回答 3

1

您应该能够通过EC2 Security Groups执行此操作,这是一个 Elastic Beanstalk 环境属性。

默认情况下,这允许从任何 IP 地址连接到端口 80,但您可以删除该规则或将其替换为您自己的 IP 地址(用于测试目的)。

如果做不到这一点,您可以在应用程序级别将所有 HTTP 流量重新路由到 HTTPS,或者只是测试 CGI 属性 *server_port_secure* 并拒绝回答。

于 2012-10-23T14:27:37.447 回答
1

是的,您需要打开 http/80 才能进行健康检查。您可以选择将所有其他请求(健康检查 URL 除外)重定向到使用 https - 这样虽然端口是打开的,但您“不会以不安全的方式提供任何数据”。

于 2014-02-12T18:27:03.443 回答
1

你至少有两个选择:

1 - 设置仅允许从负载均衡器访问端口 80 的安全组策略。重要的!!!不要在实例的安全组中使用负载均衡器 IP。请改用负载均衡器安全组 ID。

2 - 从实例中删除公共 IP。如果您的所有 EC2 实例都具有私有 IP 并且 ELB 具有公共 IP,那么您应该会很好。

于 2016-11-10T20:14:03.543 回答