Azure 专用链接从对等 VNET 访问 CosmosDB for MongoDB 数据库

问题描述 投票:0回答:1

我正在尝试配置从不同对等网络对 CosmosDB for MongoDB 数据库的 Azure 专用链接访问,但这对我不起作用。我对 SQL Server 数据库有完全相同的配置,并且效果很好。

我完全按照此链接的指示为位于 vnet1 中的 CosmosDB 数据库配置专用端点,并使用专用 DNS 区域 https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-configure -private-endpoints?tabs=arm-bicep

在 vnet2 中,我配置了与 vnet1 的对等互连,并检查了所有可能的选项,包括网关传输。我也将私有 DNS 区域链接到此 vnet2。

使用此配置,我无法从位于 vm2 中的虚拟机连接到 CosmosDB。如果我远程登录到我的 CosmosDB 私有 IP,它工作正常,但使用 Mongo Shell,我会收到“请求被网络防火墙阻止”错误,无论是使用 CosmosDB 名称还是其 IP。

如果我配置对 vnet2 的 CosmosDB 公共访问,连接就可以工作,但我知道这样我就没有按照我想要的方式使用专用链接。

解决这个问题后,我还想允许Point-to-Site VPN客户端访问这个CosmosDB。此 VPN 客户端正在连接到在 vnet2 中的虚拟网络网关中配置的点到站点 VPN。当我尝试连接到 SQL Server 时,这对我来说工作正常,但对于 CosmosDB 则不然。我的 SQL Server 已禁用公共访问,因此我相信它确实在使用其专用链接。

有人知道这里会发生什么吗?这个配置可以吗

我尝试在禁用公共访问的情况下从 vnet2 中的虚拟机使用 Mongo Shell 连接到我的 CosmosDB 数据库,但这不起作用,发生了“请求被网络防火墙阻止”错误。

如果我启用仅允许 vnet2 的公共访问,它可以正常工作,但这不是我想要的,我想使用专用链接,并且我认为允许任何公共访问我无法实现这一点。

我还尝试从连接到点到站点 VPN 的客户端连接到 CosmosDB。即使配置了 vnet2 的公共访问,我也无法从此客户端进行连接。只有当我允许我的特定公共演讲时我才会工作,这是我想避免的事情。这个 VPN 客户端实际上是我的开发工作站,我真的希望它们能够连接到这个 CosmosDB,而不必总是允许每个特定的 IP。

azure-cosmosdb azure-private-link azure-private-dns
1个回答
0
投票

问题解决了。最终这只是 DNS 问题。

我的 vnet2(VPN vnet)中有一个 Windows Server,我在其中配置了 DNS 服务来解析 VPN 客户端的名称。此 DNS 服务配置了条件转发器,将特定域的请求转发到 vnet1 中的另一个 DNS 服务器,并使用默认转发器转发到 Azure DNS。我记得我在互联网上的某个地方看到过这个配置,它最初是有效的。

但是我找到了另一种方法来进行此配置,它更容易并且工作完美:

  • 我删除了所有条件转发器,并将 Azure DNS 配置为 vnet2 中 Windows DNS 中的默认转发器。
  • 我还将我的私有 DNS 区域链接到 vnet2,它们之前仅链接到我的 vnet1。

这更容易并解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.