如何解决Azure Sql 私有链接阻止访问存储帐户
我正在尝试将应用服务配置为使用私有端点连接到 Azure Sql,如此处所述(但来自门户): https://blog.arinco.com.au/2020/08/connect-an-azure-app-service-to-azure-sql-using-azure-private-link/
但是一旦我这样做了,我连接到同一个 vnet 的 Azure Functions 之一就无法再访问存储帐户。我们通过删除/添加私有端点配置多次确认。
我正在使用定时器触发功能:
The listener for function 'MyFunction' was unable to start.
innermostMessage: A connection attempt failed because the connected party did not properly respond after a period of time,or established connection failed because connected host has failed to respond.
这如何阻止我访问存储帐户?也许一旦我将私人链接用于 Paas 产品之一,我就需要全部使用它?
解决方法
我假设默认情况下您可以访问函数链接存储帐户的公共端点(选择 Allow access from
所有网络),然后您将应用程序集成到 VNet 并将 WEBSITE_VNET_ROUTE_ALL
设置为 1,这将告诉应用服务或 Azure 函数通过 VNET 路由所有流量。默认情况下,应用服务仅将 RFC1918 流量路由到 VNET。这会限制来自 VNet 的出站流量。
在这种情况下,您可以尝试将应用集成子网添加到链接存储帐户的网络中。
,要检查的几件事,
-
您能否通过 Kudu 控制台检查环境变量
WEBSITE_PRIVATE_IP
是否存在?如果缺少此项,则意味着该 VM 上的区域 VNet 集成设置已失败。查看我的回复 here -
Web 应用程序是通过私有端点还是服务端点连接到存储?
-
使用 Kudu 控制台,运行以下命令以查看主机名解析为哪个 IP。
nameresolver hostname dnsServerIpAddress
这里,dnsServerIpAddress 是可选的。如果未提供,则它会选择 DNS 应用设置或 VNet 的 DNS 服务器。
-
对端口 443 上的存储端点的 tcpping 是否有效?尝试运行以下命令
tcpping storageaccount.blob.core.windows.net
您也可以检查 SQL。
如果它是启用了私有端点的目标,则确保名称解析器将主机名解析为私有端点的 IP 地址。如果它解析为公共 IP 地址,则目标资源的私有端点设置存在问题。
要进一步隔离,请尝试删除私有端点并通过服务端点连接。
如果没有任何帮助,请向 Azure 支持部门提交工单,以便他们进一步调查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。