E. *_*aal 5 azure-storage azure-virtual-network azure-sql-database azure-web-app-service
我在 Azure 应用服务 (S1) 上有一个 API,我在其上配置了 VNet 集成(子网 10.240.0.32/27)。我还有一个存储帐户,我在上面配置了专用链接(子网10.240.0.0/27并获得了 IP 10.240.0.4)。但是它不起作用我收到以下错误:
StorageException: 此请求无权执行此操作。
有谁知道我是否需要配置其他任何东西才能使其工作?
该文档声明我不必更改任何连接字符串。连接在配置私有链接之前工作。
我也尝试过 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
Run Code Online (Sandbox Code Playgroud)
今天和微软打了个电话。事实证明,应用服务目前无法使用私有 DNS 区域。因此,您现在需要设置自己的 DNS 服务器。它将被修复,但他们无法给我一个预计到达时间。所以现在它要么是自定义 DNS 服务器,要么是使用服务端点。当这改变时我会更新这个问题
这方面的详细信息已添加到文档中:https : //docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#azure-dns-private-zones
归结为:要使用 Azure DNS 专用区域,您需要添加以下应用程序设置:
WEBSITE_DNS_SERVERwith value 168.63.129.16
WEBSITE_VNET_ROUTE_ALLwith value1
我为任何对完整示例感兴趣的人写了一篇关于它的博客:https : //erwinstaal.nl/posts/securing-your-azure-db-connection-using-azure-private-link/
当您通过公共终结点访问 Blob 存储但启用存储帐户的 VNet 防火墙设置时,可能会发生此错误。
在应用程序 VNet 集成到存储帐户连接的情况下,您可以使用服务端点而不是专用端点。要将服务终结点与您的应用结合使用,请使用区域 VNet 集成连接到选定的虚拟网络。Microsoft.Storage然后在用于集成的子网上配置服务端点。
如果您仍然想使用专用终结点,恐怕您需要使用自己的DNS 服务器从 Azure 应用服务(Web 应用程序、函数或机器人)进行名称解析,使用虚拟网络集成将角色实例或 VM 集成到同一服务器中。虚拟网络。请参阅Azure 虚拟网络中资源的名称解析。
使用专用链接,Blob 存储 DNS 名称将解析为公共 IP 地址,而不是来自应用服务控制台的专用终结点 IP 地址。当您从应用程序服务进行访问时,您似乎正在通过公共终结点访问 VNet 外部的 Blob 存储。同时,它可以从与专用端点位于同一子网中的VM解析为专用端点IP。请参阅专用端点的 DNS 更改。
| 归档时间: |
|
| 查看次数: |
2680 次 |
| 最近记录: |