我有一个 Azure Function,需要访问托管在端口 445 上的外部 SMB 文件共享。Functions 在其中运行的 Azure Web App 沙盒明确阻止端口 445。假设我无法控制外部 SMB 文件服务器,我该怎么做才能允许 Azure 函数访问 SMB 文件共享?
一些想法...哪些是可行的?
- 设置从非阻塞端口(例如,端口 555)到外部端口 445 的传出端口转发。然后让我的函数应用程序定位非阻塞端口。
- 通过“虚拟网络”公开文件服务器。根据文档s,如果目标网络接口属于应用程序,则忽略 445 端口阻止规则。我可以将第三方主机添加为应用程序虚拟网络上的接口吗?如何操作?
- 是否有一个代理服务可以在我的 Azure 环境中安装并运行,以便在不同的端口上公开文件共享?
我该如何解决这个问题?
答案1
他们阻止 SMB 访问是有原因的:它不是一个可以安全暴露在互联网上的协议。真的如果您与第三方关系良好,您也可以建议第三方停止以这种方式将其服务器暴露于风险之中。
建议的解决方案:
1. 创建到 SMB 服务器所在站点的 VPN,并通过加密的安全隧道访问机器。2
. 使用不同的协议从服务器呈现相关数据。
答案2
Azure 中继服务可让您安全地将公司网络中运行的服务公开到公有云。您无需打开防火墙上的端口,也无需对公司网络基础结构进行侵入性更改即可实现此目的。
中继服务支持本地服务与在云或其他本地环境中运行的应用程序之间的以下场景。
- 传统的单向、请求/响应和点对点通信
- 在互联网范围内分发事件以支持发布/订阅场景
- 跨网络边界的双向、无缓冲套接字通信。
Azure 中继不同于 VPN 等网络级集成技术。Azure 中继的范围可以限定在单台计算机上的单个应用程序终结点。VPN 技术的侵入性更强,因为它依赖于改变网络环境。
https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-what-is-it