问题描述
我正在尝试使用 P2S VPN 为远程工作的用户设置 Azure sql 数据库。他们正在使用一些需要访问数据库的应用程序,如 SSMS 和 Visual Studio。我们允许他们通过将其 IP 地址列入白名单来进行连接,但我们希望阻止这种情况并在 Azure 上的 sql 服务器上使用拒绝公共网络访问选项。
我已按照 MS Docs 上的文档和教程中概述的步骤操作,但我无法让私有端点与数据库一起工作。
我已经创建了虚拟网络网关并将其连接到 Azure Active Directory,我可以看到用户在登录时创建的会话。
我使用地址范围 = 10.1.0.0/16 和子网地址范围 = 10.1.0.0/24 创建了虚拟网络。我已将专用终结点连接附加到 Azure sql 服务器并将虚拟网络添加到防火墙。
是否需要一些设置来允许用户从他们的 PC 连接到数据库而不将 IP 地址列入白名单?
解决方法
方式 1:
您可以直接从您的虚拟机使用域名而不是 IP 网络。因此,您需要在 Azure 中提供一些可以翻译域的服务 名称到 IP。
有必要正确配置您的 DNS 设置,以将私有端点 IP 地址解析为连接字符串的完全限定域名 (FQDN)。
- 对本地工作负载使用 DNS 转发器来解析专用终结点的 FQDN,以解析 Azure 中的 Azure 服务公共 DNS 区域。
DNS 转发器是在虚拟网络上运行的虚拟机 链接到可以代理来自的 DNS 查询的私有 DNS 区域 其他虚拟网络或来自本地。这是必需的,因为 查询必须从虚拟网络发起到 Azure DNS。
.
- 使用虚拟机上的主机文件覆盖 DNS:Azure 在公共 DNS 上创建规范名称 DNS 记录 (CNAME)。这 CNAME 记录将解析重定向到私有域名 (privatelink.database.windows.net)。您可以覆盖分辨率 使用您的私有 IP 地址 端点。见azure-provided-name-resolution.
参考文献:
- Azure services DNS zone configuration 和 on-premises-workloads-using-a-dns-forwarder
- 有关使用专用链接的连接故障排除,请参阅 this
- 了解如何resolve-azure-internal-dns-from-your-on-prem-network
方式 2:
您可以选择 SQL managed instance ,这是另一个 Azure SQL PaaS 产品。它部署在 VNet 中,没有公共服务 端点并使用根证书和客户端证书进行身份验证 天蓝色。
(当人们不喜欢使用私有端点时,请使用此方法:)
- 使用证书配置 P2S VPN 参考: configure-p2s-vpn-using-certificates-and-connect-to-sql-managed-instance-from-on-premise-machine.
其他参考资料: