首页 > 解决方案 > 从公共 Azure 函数到 Azure PostgreSQL 的安全连接

问题描述

语境

目标

使 PostgreSQL 实例仅可供函数应用程序访问,同时保持函数应用程序可从 Internet 访问。

我试过的

  1. 创建 VNet 和启用服务终结点的子网。
  2. 将 VNet 规则添加到 PostgreSQL 实例,仅保护来自该子网的访问。
  3. 将函数应用与 VNet 集成。

这应该足以限制对数据库的访问,但它具有无法从 Internet 访问 Function App 的副作用。我相信 AppInsights 也无法访问 Function App(进入Unable to open a connection to your app. This may be due to any network security groups or IP restriction rules that you have placed on your app.监视器)。

在 AWS 世界中,我将 Lambda 和数据库实例放在私有子网中,并为 Lambda 的 Internet 访问添加一个 NAT 网关。经过广泛的研究,我无法弄清楚如何使用 Azure 实现这一目标。

如果有替代方法,请告诉我!

标签: azure-functionsazure-virtual-networkazure-postgresql

解决方案


由于 Microsoft 支持的帮助,该问题已得到解决。看来问题不在于函数应用程序和互联网之间的链接。正如 Nancy 在她的回答中正确提到的那样,将 Function App 集成到 VNet 不会限制对 FA 的公共访问。

就我而言,问题是函数应用程序与其存储帐户之间缺少链接——因此 FA 无法从存储中加载函数和配置。在子网上启用Microsoft.Storage服务端点解决了这个问题。奇怪的是官方教程没有提到这一点。

使用 Azure 门户,可以通过 VNet 页面->Subnets ->your subnet ->Service Endpoints ->Enable添加服务端点Microsoft.Storage


推荐阅读