Azure Functions 存储帐户网络安全

Phi*_*ray 5 azure azure-storage azure-functions azure-security

我目前正在与一个客户合作,该客户需要尽可能锁定所有 Azure 资源的访问权限,但我在使用 Azure Functions 的存储帐户时遇到了问题。

随着门户中的防火墙和虚拟网络刀片设置为“所有网络”,我能够部署到函数应用程序并且它运行没有问题。

在此处输入图片说明

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

在此处输入图片说明

我已经输入了我们基于消费的功能应用程序的出站 IP 地址,并检查了来自 Powershell 的其他 IP 地址和所有 IP 地址是否都已添加到白名单中。我还添加了本地 Azure 数据中心的所有 CIDR IP 范围,但它再次不起作用。

我们遇到的问题是,一旦设置了访问限制,我们就无法部署到 Function App 并且该应用程序不再运行。是否支持此方案以及绑定对存储帐户的访问权限以便只有功能应用程序可以使用它的机制是什么。

Nan*_*ong 5

据我所知,您有两个选项可以限制从您的函数应用或 Web 应用访问您的存储帐户。

  1. 在存储帐户的防火墙中将功能应用程序的outboundIpAddresses和列入白名单possibleOutboundIpAddresses。但是,如果位于同一区域的 Azure 函数应用和 Azure 存储参考Sam 的回答,则不起作用。

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

  1. 如果您的资源位于不同区域,您可以使用函数应用的网络部分来允许函数应用访问 VNet 中的资源,然后Microsoft.Storage在此应用集成子网中启用服务终结点。但是您需要参考本教程的 Azure Functions Premium 计划:将 Functions 与 Azure 虚拟网络集成。

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

首先,您可以使用未使用的子网部署新的 VNet 集成。完成 VNet 集成并重新启动函数应用后,您可以为此子网启用服务终结点。最后,您可以在存储帐户的防火墙中添加子网。

请注意,新版本目前处于预览状态。您还可以检查这些特征并从此线程获得更多参考。