【发布时间】:2020-07-11 04:14:24
【问题描述】:
我在配置了 VNet 集成(子网 10.240.0.32/27)的 Azure 应用服务 (S1) 上有一个 API。我还有一个存储帐户,我在其上配置了专用链接(子网 10.240.0.0/27 并获得 IP 10.240.0.4)。但是它不起作用我收到以下错误:
StorageException: 此请求无权执行此操作。
有谁知道我是否需要配置其他任何东西才能让它工作?
doc 声明我不必更改任何连接字符串。连接在配置专用链接之前有效。
更新
我也尝试过使用 Azure SQL 数据库。在与存储相同的子网中部署 SQL 专用链接。这里也没有多少运气。收到以下错误:
SqlException:原因:发生特定于实例的错误,而 建立与 SQL Server 的连接。公共数据端点 此服务器不可访问。要连接到此服务器,请使用 来自虚拟网络内部的专用端点。
当我将 WEBSITE_VNET_ROUTE_ALL(使所有传出流量通过 vnet 而不仅仅是私有 IP)添加到 Web 应用程序并将其设置为 1 时,我收到以下错误:
SqlException:发生与网络相关或特定于实例的错误 在建立与 SQL Server 的连接时。服务器没有 找到或无法访问。验证实例名称是否正确 并且 SQL Server 配置为允许远程连接。 (提供者:TCP 提供者,错误:0 - 发生不可恢复的错误 在数据库查找期间。)
然后我在与私有链接相同的子网中创建了一个 VM。从那个虚拟机我可以运行这个命令,它可以很好地返回正确的 IP:
.\psping.exe azurenetworking.database.windows.net:1433
2020 年 4 月 2 日更新
今天与 Microsoft 通了电话。原来应用服务目前无法使用私有 DNS 区域。因此,您现在需要设置自己的 DNS 服务器。它将被修复,但他们无法给我 ETA。所以现在它要么是自定义 DNS 服务器,要么是使用服务端点。当这种情况发生变化时,我会更新这个问题
6 月 2 日更新
这方面的详细信息已添加到文档中:https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#azure-dns-private-zones
归结为:
若要使用 Azure DNS 专用区域,您需要添加以下应用设置:
WEBSITE_DNS_SERVER 具有值 168.63.129.16
WEBSITE_VNET_ROUTE_ALL 带有值 1
我为任何对完整示例感兴趣的人写了一篇关于它的博客:https://erwinstaal.nl/posts/securing-your-azure-db-connection-using-azure-private-link/
【问题讨论】:
标签: azure-sql-database azure-storage azure-web-app-service azure-virtual-network