无法从 azure 资源连接到 postgres 服务器的 Azure 数据库

Ami*_*tyo 5 postgresql networking azure azure-aks

我无法使用 pgcli 从 azure 资源(aks 节点)连接到 Azure postgres。我也直接从节点尝试并收到相同的错误消息:

FATAL: Client from Azure Virtual Networks is not allowed to access the server. Please make sure your Virtual Network is correctly configured.

资源中的防火墙规则开启: Allow access to Azure services: ON

在我的计算机和另一个 azure 资源上运行相同的 pgcli login 命令似乎工作正常。

将防火墙规则添加到所有 IP 会返回相同的错误。

来自有问题的服务器 (host:5432) 的 Curl 返回回复,因此这不是出站问题。

max*_*x_i 6

错误是什么意思?

连接源自的 VM 部署到Microsoft.Sql服务端点已打开的虚拟网络子网。根据文档

如果在子网中启用了 Microsoft.Sql,则表明您只想使用 VNet 规则进行连接。该子网中资源的非 VNet 防火墙规则将不起作用。

为了成功连接,必须在 PostgreSQL 端添加 VNet 规则。当时提出这个问题时,Azure Database for PostgreSQL 的 VNet 服务端点刚刚进入公共预览版,因此我认为它可能不适用于 OP。

解决方案

截至 2020 年 11 月,Postgres 的服务端点已正式发布,您可以向 PostgreSQL 服务器实例添加缺少的 VNet 规则并引用启用服务端点的子网,而不是禁用服务端点。可以通过PortalAzure CLI完成


Ami*_*tyo 4

显然,虚拟机是启用了服务端点标记 Microsoft.sql 的 vnet 的一部分。

我找到了这个答案。为了解决这个问题,我禁用了服务端点并将公共 IP 添加到“连接安全”部分。