Azure Functions存储帐户网络安全性

时间:2019-05-22 06:57:08

标签: azure azure-storage azure-functions azure-security

我目前正在与一个需要尽可能访问所有Azure资源的客户端一起使用,并且我的Azure功能所使用的存储帐户存在问题。

将门户网站中的“防火墙和虚拟网络”刀片设置为“所有网络”后,我可以部署到Function App,它可以正常运行。

enter image description here

但是,一旦我通过输入“选定的网络”来启用访问限制,无论我输入哪个虚拟网络子网或IP地址,我都无法使通信正常工作

enter image description here

我已经输入了基于消耗的功能应用程序的出站IP地址,并且还检查了Powershell中的其他IP地址,并且所有这些都已添加到白名单中。我还添加了本地Azure数据中心的所有CIDR IP范围,但同样无法使用。

我们遇到的问题是,一旦设置了访问限制,我们将无法部署到Function App,并且该App将不再运行。是否支持此方案,以及如何限制对存储帐户的访问的机制,以便只有Function App才能使用它。

1 个答案:

答案 0 :(得分:2)

据我所知,您有两个选择来限制从功能应用程序或Web应用程序访问存储帐户。

  1. 在存储帐户的防火墙中将功能应用程序的outboundIpAddressespossibleOutboundIpAddresses列入白名单。但是,如果位于同一区域的Azure功能应用程序和Azure存储引用了Sam's answer,则不起作用。
  

当您通过功能访问存储帐户时,因为它们是   在彼此相同的区域中,所有流量都经过   内部IP上的内部Azure网络,而不是内部IP地址中列出的公共IP   Web应用程序,因此不允许通过防火墙。

  1. 如果资源位于不同的区域,则可以使用功能应用程序的网络部分来允许功能应用程序访问VNet中的资源,然后在此应用程序集成子网中为Microsoft.Storage启用服务端点。但是您需要参考本教程的Azure Functions Premium计划:integrate Functions with an Azure virtual network.

有时候,网络的部署顺序很重要。在这种情况下,您将部署以下内容:

首先,您可以使用未使用的子网部署新的VNet集成。 VNet集成完成并重新启动功能应用程序后,您可以为此子网启用服务端点。最后,您可以将子网添加到存储帐户的防火墙中。

请注意,新版本当前处于“预览”状态。您还可以检查这些characteristics并从此thread获取更多参考。