语境
- 可从 Internet 访问的 Azure 函数(想想公共 API)。
- Function 应用程序托管在
Elastic Premium
计划中。 - Azure 管理的 PostgreSQL 实例(
GP
计划)。
目标
使 PostgreSQL 实例仅可供函数应用程序访问,同时保持函数应用程序可从 Internet 访问。
我试过的
- 创建 VNet 和启用服务终结点的子网。
- 将 VNet 规则添加到 PostgreSQL 实例,仅保护来自该子网的访问。
- 将函数应用与 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 实现这一目标。
如果有替代方法,请告诉我!