2

我创建了一个内部网络负载均衡器 (NLB) 以连接到私有子网上的 EC2 实例。我想限制仅从网络负载均衡器访问 EC2 实例。我使用了这些说明https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups但它不起作用。

基本上,我将 NLB 的网络接口的 IP 地址添加到安全组,并允许使用我的特定端口(例如:8080 10.4.2.9/32),但这不起作用。当我切换到全部允许(例如:8080 0.0.0.0/32)时,它起作用了,但我不希望其他实例能够访问 ec2 实例。

关于为什么这不起作用的任何想法?谢谢

4

2 回答 2

1

如果您使用的是网络负载均衡器,请更新目标实例的安全组,因为网络负载均衡器没有关联的安全组。

  • 如果您的目标类型是 IP,请将规则添加到您的安全组以允许从负载均衡器到目标 IP 的流量。

  • 如果您的目标类型是实例,请将规则添加到您的安全组,以允许来自负载均衡器和客户端的流量到目标 IP。

  • 您可以允许 EC2 实例安全组中的流量。由于您的实例位于私有子网中,因此您需要在同一区域但在公共子网中午餐负载均衡器。

首先了解您的用例。

网络负载均衡器的最佳用例:

  • 当您需要无缝支持尖峰或大量入站 TCP 请求时。
  • 当您需要支持静态或弹性 IP 地址时。
  • 如果您正在使用容器服务和/或希望在 EC2 实例上支持多个端口。NLB 特别适合 ECS(Amazon EC2 容器服务)。

安全组负载平衡器

新网络负载均衡器可轻松扩展至每秒数百万个请求

什么是网络负载平衡器

于 2018-09-18T05:44:01.753 回答
1

对于您要完成的任务,NLB 是错误的负载均衡器。

NLB 是第 4 层负载均衡器。这意味着您(在 EC2 实例上)看到的 IP 地址是客户端的 IP 地址,而不是负载均衡器的 IP 地址。使用 NLB,您必须在您的安全组中允许客户端的 IP 地址。

您想要一个第 7 层负载均衡器来实现您想要做的事情(阻止您的 VPC 中的其他系统直接访问您的 EC2 实例)。这意味着 ALB 或经典的 ELB。

于 2018-09-18T05:25:44.637 回答