从 Azure 应用服务通过私有 link 连接到 cosmos db

Connection to cosmos db over private link from azure app service

我想通过我的 Web 应用程序通过私有 link 使用 cosmos 数据库。 我可以用 azure sql 来完成这项工作,但是 cosmos 是另一回事。

app service 和 cosmos db 这两个资源在同一个 azure 区域的同一个资源组中,并且它们连接到同一个 vnet。

我在 vnet 中创建了两个子网。第一个由托管我的网络应用程序的应用程序服务使用。 我已经通过vnet-integration将应用服务集成到网络中。

第二个用于我的“cosmos db”实例的“专用端点”。 当从“应用程序服务”借助 c # 的 cosmos db 客户端库连接时,我收到一条错误消息,指出不允许来自 Internet 的流量被阻止。 当我从应用程序服务上的“kudo 控制台”运行 nslookup 时 <mycosmosdbinstance>.documents.azure.com

Resloves 到 public ip,表明流量是通过 Internet 路由的。 我已严格按照本指南中的步骤进行操作

https://erwinstaal.nl/posts/securing-your-azure-db-connection-using-azure-private-link/

设置应用程序设置 WEBSITE_VNET_ROUTE_ALL 和 WEBSITE_DNS_SERVER vnet 上的路由流量并使用 azure dns 解析主机名。 有人能成功吗?

如果流量仍然通过 public 互联网路由,可能是因为在您创建 Cosmos 帐户时 publicNetworkAccess 未设置为禁用。

我将按照下面的步骤进行操作。这些在遵循时起作用。

Configure Azure Private Link for an Azure Cosmos account

私有 Link 不会阻止 public DNS 解析你的 Azure Cosmos 端点。传入请求的过滤发生在应用程序级别,而不是传输或网络级别。