我目前正在与一个需要尽可能访问所有Azure资源的客户端一起使用,并且我的Azure功能所使用的存储帐户存在问题。
将门户网站中的“防火墙和虚拟网络”刀片设置为“所有网络”后,我可以部署到Function App,它可以正常运行。
但是,一旦我通过输入“选定的网络”来启用访问限制,无论我输入哪个虚拟网络子网或IP地址,我都无法使通信正常工作
我已经输入了基于消耗的功能应用程序的出站IP地址,并且还检查了Powershell中的其他IP地址,并且所有这些都已添加到白名单中。我还添加了本地Azure数据中心的所有CIDR IP范围,但同样无法使用。
我们遇到的问题是,一旦设置了访问限制,我们将无法部署到Function App,并且该App将不再运行。是否支持此方案,以及如何限制对存储帐户的访问的机制,以便只有Function App才能使用它。
答案 0 :(得分:2)
据我所知,您有两个选择来限制从功能应用程序或Web应用程序访问存储帐户。
outboundIpAddresses
和possibleOutboundIpAddresses
列入白名单。但是,如果位于同一区域的Azure功能应用程序和Azure存储引用了Sam's answer,则不起作用。当您通过功能访问存储帐户时,因为它们是 在彼此相同的区域中,所有流量都经过 内部IP上的内部Azure网络,而不是内部IP地址中列出的公共IP Web应用程序,因此不允许通过防火墙。
Microsoft.Storage
启用服务端点。但是您需要参考本教程的Azure Functions Premium计划:integrate Functions with an Azure virtual network. 有时候,网络的部署顺序很重要。在这种情况下,您将部署以下内容:
首先,您可以使用未使用的子网部署新的VNet集成。 VNet集成完成并重新启动功能应用程序后,您可以为此子网启用服务端点。最后,您可以将子网添加到存储帐户的防火墙中。
请注意,新版本当前处于“预览”状态。您还可以检查这些characteristics并从此thread获取更多参考。