是否可以将 Azure Blob 存储容器列入 IP 白名单以仅接受来自特定 Azure Functions 的请求

Is it possible to IP whitelist Azure Blob Storage Containers to only accept requests from specific Azure Functions

我们目前正在尝试创建一个解决方案,该解决方案使用以 C# 编译的 Function Apps (v2) 来处理 Azure 中的敏感数据。由于应用程序服务环境对于我们需要的解决方案来说过于昂贵,因此我们尝试保护我们的函数与通用 blob 存储 (v1) 队列和 table 之间的通信,首先使用 vnet 集成,然后使用 IP 限制。 不幸的是,尝试通过 IP 限制从函数访问 blob 存储是行不通的——当我们尝试连接时,它似乎总是以 'Forbidden' 失败,即使将函数的外部 IP 的完整列表添加到 blob 存储的允许的 IP 列表。并且 blob 存储不允许将函数的内部 IP(Kudu 中的 LOCAL_ADDR)添加到 'allowed IPs' 列表中,因为它是一个内部 IP,甚至不允许将整个 Azure 区域的 IP 地址添加到 blob存储似乎仍然不允许该功能连接。唯一可行的方法是完全关闭 IP 限制,这会使整个解决方案在安全方面(例如 GDPR)处于不稳定状态。

有没有人设法找到解决这个问题的方法?这真的有可能吗?如果是的话,我们有什么想法可能会出错吗?

我找到的最接近的解决方案是将您的 Functions 应用程序连接到 VNET,然后将您的存储帐户连接到同一个 VNET,然后您可以根据该 VNET 配置限制。存储不特别支持 Functions 和异常安全性,因为 "Allow azure trusted services" 下的查找不包括 Functions 产品。

我建议检查 this document to help configure your Functions app to a VNET, then this one 的第二部分以使用相同的 vnet 配置您的存储帐户,然后在存储防火墙上​​添加限制。