Azure NSG 不会阻止到子网 ACI 的流量

问题描述

我终于正确设置了一个 azure sftp 容器实例,但在为其配置安全性时遇到了墙(很像那个人 here)。

我的基本流程是这样的:

Azure 上的 PIP ->

-> 使用 PIP 的负载均衡器可被更广泛的网络访问 ->

-> 到后端子网的负载均衡规则 ->

-> 位于该子网上的 SFTP 容器组 ->

-> 该组中的 SFTP 容器

没什么特别的,我在关联 NSG 之前验证了网络按预期运行。与 SFTP 服务器的连接工作正常。问题是,在将 NSG 与容器组的子网关联后,我仍然能够在没有任何配置规则的情况下连接到它。即使在应用规则@priority 100 拒绝所有流量后,为了排除我可能会从认规则中遗漏的某些内容,我仍然可以进入。

阅读 NSG flow logs don't include container instances方法后,我在相信用户让 NSG 与容器组一起工作但缺少日志以及 NSG 根本不与容器组一起工作的可能性之间左右为难。如果有人对此处正确使用 NSG 有任何指导,请告诉我。否则,如果我应该使用其他工具,请推荐它(Azure Firewall 包含在容器组教程中,但我认为对于我需要的东西来说完全是矫枉过正,而且价格昂贵)。

编辑:添加 NSG 规则图片 -

Picture of NSG rules

解决方法

经过我的验证,目前,与 ACI 子网关联的 NSG 在此方案中不适用于 Azure 负载均衡器后面的 SFTP 容器服务。此 NSG 规则不会阻止客户端的公共 IP 地址,并且在没有它的情况下也能正常工作。

作为一种解决方法,您可以使用 NGINX 反向代理(如 this blog)限制 SFTP 访问,或添加 Azure 应用程序网关反向代理等服务以将面向公众的流量定向到后端实例。