我有一个面向公众的标准 SKU Azure 负载均衡器,它使用负载均衡规则将某个端口的传入请求转发到虚拟机。该虚拟机具有在子网级别定义的 NSG,允许该端口的传入流量,源设置为“Internet”。
目前,此设置有效,但我需要实现白名单 - 仅允许特定的 IP 地址集能够通过负载均衡器连接到此虚拟机。但是,如果我删除 NSG 规则中的“Internet”源类型,则无法再通过负载均衡器访问虚拟机。
其他人是否遇到过类似的用例,以及在可通过负载均衡器访问的虚拟机上设置 IP 白名单的最佳方法是什么。谢谢!
编辑:提供更多详细信息
这些是子网中定义的顶级 NSG。
我们有一个公共负载均衡器,位于应用上述 NSG 的虚拟机前面。该虚拟机没有特定的公共 IP,依赖于负载均衡器的公共 IP。
公共负载均衡器将端口 8443 和端口 8543 上的所有流量转发到此虚拟机,没有会话持久性,并且出站和入站使用相同的 IP。
以下是我迄今为止所做的观察:
我也使用过负载平衡规则选项,但似乎没有任何东西可以实现我正在寻找的东西 - 即:
我只能实现上述目标之一,但不能同时实现。
我也尝试过使用分配给虚拟机的专用公共 IP 进行相同的白名单;并且它也失去了与端口的连接,我没有在其中分配“互联网”源标签。
Azure 在每个网络安全组中都有默认规则。它允许来自 Azure 负载均衡器资源的入站流量。
如果您想限制客户端访问您的客户端,只需添加一条新的入站端口规则,以您的客户端的公网IP地址为
Source
,并在您的具体入站中指定Destination port ranges
和Protocol
规则。您可以通过在客户端计算机上打开该 URL 来检查客户端的公共 IPv4 here。
对于其他在这里绊倒的人:
如果您希望将某些特定客户端 IP 的 Azure VM(公开或私有)列入白名单,则必须执行以下步骤:
另外,请注意查看您的客户端计算机计划连接的所有公共 IP。特别是在测试时,请使用公共 IP,而不是 VPN 网关地址范围 - 这就是我们所使用的,最终导致我们的白名单测试出现误报。