如何允许弹性负载均衡器通过安全组中的 80 端口?

Ida*_*ter 19 scaling load-balancing amazon-ec2 amazon-web-services

我想暂时阻止外部世界的端口 80,但希望负载均衡器通过防火墙(通过安全组),这样它就不会将实例视为不健康。我怎样才能做到这一点?

更新: 我还想知道如何只允许自己通过端口 80 访问弹性负载均衡器(但阻止其他人访问)。我知道负载均衡器没有我可以设置的特定安全组并告诉它只接受我的 IP 地址,但是还有其他方法可以做到吗?

Jer*_*use 18

埃里克花了很长的路要指出,但实际上并没有说明您需要将源授权为amazon-elb/amazon-elb-sg. 如果您通过 AWS 管理控制台执行此操作,当您开始在源字段中键入它时,它实际上会自动完成。我操作了几个 ELB 配置,它们都允许通过这个安全组和我的监控系统的静态 IP 地址访问 80/TCP。

为了解决更新的请求信息,您不能限制哪些 IP 地址可以访问 ELB。如果您编写规则来查看标题并做出拒绝页面视图的决定,那么这在 Apache 服务器端是可能的。我限制测试访问的方法是将我的静态 IP 添加到允许通过端口 80/TCP 访问 EC2 实例的安全组,然后简单地将实例从 ELB 中取出进行测试。

  • 这个答案让我感到困惑的是文本 *amazon-elb/amazon-elb-sg* 格式化为代码,暗示这是一些神奇的 aws id。实际上,您所要做的就是在源字段中键入“sg-”,然后您将获得所有不同安全组的下拉列表。 (4认同)

Eri*_*ond 6

亚马逊在 4 月份宣布对此提供支持:

您现在可以使用与弹性负载均衡器关联的特殊安全组,将位于弹性负载均衡器后面的 EC2 实例配置为仅从负载均衡器接收流量。为此,您调用 DescribeLoadBalancers API 以获取 SecurityGroup 的名称,然后在随后启动某些 EC2 实例时将该组包含在组列表中。还可以从 AWSManagement 控制台的负载均衡器详细信息窗格中获取安全组的名称。

http://aws.typepad.com/aws/2011/05/elastic-load-balancing-ipv6-zone-apex-support-additional-security.html