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

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

我想暂时阻止外部使用端口 80,但希望负载均衡器通过防火墙(通过安全组),这样它就不会认为该实例不健康。我该怎么做?

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

答案1

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

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

答案2

亚马逊于 4 月份宣布支持此功能:

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

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

答案3

我应该补充一下,这amazon-elb/amazon-elb-sg是负载均衡器安全组的默认名称。如果您更改了安全组的名称,则添加amazon-elb/amazon-elb-sg将不起作用。更通用的答案是将负载均衡器的安全组 ID 或安全组名称添加到参与集群的所有实例的安全组中。

答案4

为 ELB 创建新的安全组,然后仅允许从 ELB 安全组访问 EC2。更改 VPC 部分中的安全设置可以更轻松地执行此操作。

特定 IP/范围 -> ELB -> EC2(仅 ELB 组)->

我有多个通过 ELB 进行私有访问的开发环境,但具有服务器监控所需的健康检查。

相关内容