问题描述
我终于正确设置了一个 azure sftp 容器实例,但在为其配置安全性时遇到了墙(很像那个人 here)。
我的基本流程是这样的:
Azure 上的 PIP ->
-> 到后端子网的负载均衡规则 ->
-> 位于该子网上的 SFTP 容器组 ->
-> 该组中的 SFTP 容器
没什么特别的,我在关联 NSG 之前验证了网络按预期运行。与 SFTP 服务器的连接工作正常。问题是,在将 NSG 与容器组的子网关联后,我仍然能够在没有任何配置规则的情况下连接到它。即使在应用规则@priority 100 拒绝所有流量后,为了排除我可能会从默认规则中遗漏的某些内容,我仍然可以进入。
阅读 NSG flow logs don't include container instances 的方法后,我在相信用户让 NSG 与容器组一起工作但缺少日志以及 NSG 根本不与容器组一起工作的可能性之间左右为难。如果有人对此处正确使用 NSG 有任何指导,请告诉我。否则,如果我应该使用其他工具,请推荐它(Azure Firewall 包含在容器组教程中,但我认为对于我需要的东西来说完全是矫枉过正,而且价格昂贵)。
解决方法
经过我的验证,目前,与 ACI 子网关联的 NSG 在此方案中不适用于 Azure 负载均衡器后面的 SFTP 容器服务。此 NSG 规则不会阻止客户端的公共 IP 地址,并且在没有它的情况下也能正常工作。
作为一种解决方法,您可以使用 NGINX 反向代理(如 this blog)限制 SFTP 访问,或添加 Azure 应用程序网关反向代理等服务以将面向公众的流量定向到后端实例。