如何将 Azure 负载均衡器前面的 Azure VM 上的源 IP 列入白名单

How to whitelist source IPs on Azure VMs fronted by Azure Load Balancer

我有一个面向 public 的标准 sku Azure 负载均衡器,它使用负载均衡规则将对某个端口的传入请求转发到虚拟机。此虚拟机有一个在子网级别定义的 NSG,它允许该端口的传入流量,源设置为 'Internet'.

目前,此设置有效,但我需要实施白名单 - 仅允许一组特定的 IP 地址能够通过负载平衡器连接到此虚拟机。但是,如果我在 NSG 规则中删除 'Internet' 源类型,则无法再通过负载均衡器访问 VM。

有没有其他人遇到过类似的用例?在可通过负载均衡器访问的 VM 上设置 IP 白名单的最佳方法是什么。谢谢!


编辑:提供更多细节

Screenshot of NSGs

这些是在子网中定义的顶级 NSG。

我们有一个 public 负载平衡器,位于应用上述 NSG 的虚拟机前面。此虚拟机没有特定的 public IP,依赖于负载均衡器的 public IP。

public 负载均衡器将端口 8443 和端口 8543 上的所有流量转发到此虚拟机,没有会话持久性,并且出站和入站使用相同的 IP。

以下是我到目前为止所做的观察:

我也使用过负载平衡规则选项,但似乎没有任何东西可以实现我正在寻找的东西——即:

我只能实现上述目标之一,但不能同时实现这两个目标。

我也尝试过使用分配给虚拟机的专用 public IP 进行相同的白名单;这也失去了与端口的连接,我没有在其中分配 'Internet' 源标记。

Azure 在每个网络安全组中都有默认规则。它允许来自 Azure 负载均衡器资源的入站流量。

如果您想限制客户端访问您的客户端,您只需添加一个新的入站端口规则,将您客户端的public IP地址作为Source并指定Destination port rangesProtocol 在您的特定入站规则中。您可以通过在客户端计算机上打开 URL 来检查客户端的 public IPv4 here

只是想为在这里绊倒的其他人添加注释:

如果您希望为少数特定客户端 IP 将 Azure VM(public单独或私下可用)列入白名单,则必须执行以下步骤:

  • 为 VM(或子网)创建 NSG - 如果尚不可用
  • 添加 NSG 规则以允许来自特定端口上特定客户端 IP 的入站流量
  • 添加 NSG 规则以拒绝来自所有其他来源的入站流量[这确实是可选的,但有助于确保设置的安全]

此外,请注意查看您的客户端计算机计划连接的所有 public 个 IP。特别是在测试时,使用 public IP 而不是 VPN 网关地址范围 - 这是我们使用的并且最终得到了我们的白名单测试的假阴性。