Azure SQL 托管实例的 Azure 专用链接

适用于:Azure SQL 托管实例

本文概述了 Azure SQL 托管实例的专用终结点,以及配置该端点的步骤。 专用终结点在一个服务和多个虚拟网络之间建立安全、隔离的连接,不会公开服务的整个网络基础结构。

概述

专用链接是一项 Azure 技术,使 Azure SQL 托管实例在所选的虚拟网络中可用。 网络管理员可以在其虚拟网络中建立 Azure SQL 托管实例的专用终结点,而 SQL 管理员选择在终结点变为活动状态之前接受或拒绝该终结点。 专用终结点在一个服务和多个虚拟网络之间建立安全、隔离的连接,不会公开服务的整个网络基础结构。

专用终结点与 VNet 本地终结点有何不同

与每个 Azure SQL 托管实例一起部署的默认 VNet 本地终结点的行为类似于以物理方式将运行服务的计算机附加到虚拟网络。 它允许通过路由表、网络安全组、DNS 解析、防火墙和类似机制进行全面的流量控制。 还可以使用此终结点让实例参与需要在 1433 以外的端口上进行连接的场景,例如故障转移组、分布式事务和托管实例链接。 尽管 VNet 本地终结点提供了灵活性,但在针对特定场景(尤其是涉及多个虚拟网络或租户的场景)进行配置时,它会增加复杂性。

相比之下,设置专用终结点就类似于将运行 Azure SQL 托管实例的计算机的物理网线延伸到另一个虚拟网络。 此连接路径实际上是通过 Azure 专用链接技术建立的。 它只允许单向连接:从专用终结点到 Azure SQL 托管实例的连接;它只在端口 1433(标准 TDS 流量端口)上传输流量。 这样,你的 Azure SQL 托管实例就可用于不同的虚拟网络,而无需设置网络对等互连或打开实例的公共终结点。 即使将实例移到另一个子网,任何已建立的专用终结点也会继续指向它。

有关 Azure SQL 托管实例支持的不同类型终结点的更详细介绍,请参阅通信概述

何时使用专用终结点

与使用 VNet 本地终结点公共终结点相比,Azure SQL 托管实例的专用终结点不仅更加安全,还简化了重要连接场景的实现。 这些方案包括:

  • 气锁。 Azure SQL 托管实例的专用终结点部署在具有跳转服务器和 ExpressRoute 网关的虚拟网络中,在本地与云资源之间提供安全性和隔离性。
  • 中心辐射型拓扑。 分支虚拟网络中的专用终结点将流量从 SQL 客户端和应用程序传导至中心虚拟网络中的 Azure SQL 托管实例,可以建立明确的网络隔离性和责任分离。
  • 发布者-使用者。 发布者租户(例如 ISV)在其虚拟网络中管理多个 SQL 托管实例。 发布者在其他租户的虚拟网络中创建专用终结点,使实例可供其使用者使用。
  • Azure PaaS 和 SaaS 服务的集成。 某些 PaaS 和 SaaS 服务(例如 Azure 数据工厂)可以创建和管理 Azure SQL 托管实例的专用终结点。

通过 VNet 本地终结点或公共终结点使用专用终结点的好处包括:

  • IP 地址可预测性:为 Azure SQL 托管实例的专用终结点分配其子网地址范围内的某个固定 IP 地址。 即使 VNet 本地终结点和公共终结点的 IP 地址发生变化,此固定 IP 地址仍保持静态。
  • 精细网络访问:专用终结点仅在其虚拟网络中可见。
  • 强网络隔离性:在对等互连方案中,对等互连的虚拟网络建立双向连接,而专用终结点是单向的,不会将其网络中的网络资源公开给 Azure SQL 托管实例。
  • 避免地址重叠:对等互连多个虚拟网络需要谨慎分配 IP 空间,如果地址空间重叠,可能会出现问题。
  • 节省 IP 地址空间资产:一个专用终结点仅使用其子网地址空间中的一个 IP 地址。

限制

  • Azure SQL 托管实例需要确切的实例主机名才能显示 SQL 客户端发送的连接字符串。 不支持使用专用终结点的 IP 地址,操作将失败。 若要解决此问题,请配置 DNS 服务器,或使用专用 DNS 区域,如为专用终结点设置域名解析中所述。
  • 尚不支持自动注册 DNS 名称。 请改为按照为专用终结点设置域名解析中的步骤执行操作。
  • SQL 托管实例的专用终结点只可用于连接到端口 1433,即用于传输 SQL 流量的标准 TDS 端口。 需要通过其他端口通信的更复杂连接场景必须通过实例的 VNet 本地终结点建立。
  • Azure SQL 托管实例的专用终结点需要进行特殊的设置才能配置所需的 DNS 解析,如为专用终结点设置域名解析中所述。
  • 专用终结点始终使用代理连接类型进行操作。

在虚拟网络中创建专用终结点

使用 Azure 门户、Azure PowerShell 或 Azure CLI 创建专用终结点:

创建一个专用终结点后,可能还需要批准它在目标虚拟网络中的创建;请参阅审查并批准创建专用终结点的请求

若要使 SQL 托管实例的专用终结点完全正常运行,请按照为专用终结点设置域名解析的说明执行操作。

在 PaaS 或 SaaS 服务中创建专用终结点

一些 Azure PaaS 和 SaaS 服务可以使用专用终结点从其环境内部访问数据。 在这样的服务中设置专用终结点(有时称为“托管专用终结点”或“托管虚拟网络中的专用终结点”)的过程在不同的服务中也有所不同。 管理员仍需要在 Azure SQL 托管实例上审查和批准请求,如审查并批准创建专用终结点的请求中所述。

注意

Azure SQL 托管实例要求来自 SQL 客户端的连接字符串将实例的名称作为域名的第一部分(例如:<instance-name>.<dns-zone>.database.chinacloudapi.cn)。 尝试通过 IP 地址连接到 Azure SQL 托管实例的专用终结点的 PaaS 和 SaaS 服务将无法连接。

创建跨租户专用终结点

也可以在不同的 Azure 租户中创建 Azure SQL 托管实例的专用终结点。 为此,专用终结点所在虚拟网络的管理员必须首先获取要从中请求专用终结点的 Azure SQL 托管实例的完整资源 ID。 利用此信息,可以在专用链接中心创建新的专用终结点。 与以前一样,Azure SQL 托管实例的管理员将收到一个请求,他们可以根据评审和批准创建专用终结点的请求进行评审和批准或拒绝。

审查并批准创建专用终结点的请求

发出创建专用终结点的请求后,SQL 管理员可以管理与 Azure SQL 托管实例的专用终结点连接。 管理新专用终结点连接的第一步是审查并批准专用终结点。 如果创建专用终结点的用户或服务对 Azure SQL 托管实例资源拥有足够的 Azure RBAC 权限,则此步骤可自动完成。 如果用户没有足够的权限,则必须手动审查和批准专用终结点。

若要批准专用终结点,请执行以下步骤:

  1. 转到 Azure 门户中的 Azure SQL 托管实例。

  2. 在“安全性”下,选择“专用终结点连接”。

    Azure 门户“专用终结点连接”页的屏幕截图,其中显示了两个挂起的连接。

  3. 查看处于“挂起”状态的连接,选中框以选择要批准或拒绝的一个或多个专用终结点连接。

    Azure 门户的屏幕截图,其中选择了一个专用终结点连接以供批准。

  4. 选择“批准”或“拒绝”,然后在验证操作的对话框中选择“是”。

    提示在批准连接时附带响应消息的对话框的屏幕截图。

  5. 在你批准或拒绝连接后,“专用终结点连接”列表会反映出当前专用终结点连接的状态,以及“请求/响应消息”。

    Azure 门户“专用终结点连接”页的屏幕截图,其中显示了一个挂起的连接和一个批准的连接。

为专用终结点设置域名解析

创建 Azure SQL 托管实例的专用终结点后,需要配置域名解析,否则登录尝试会失败。 以下方法适用于使用 Azure DNS 解析的虚拟网络。 如果你的虚拟网络配置为使用自定义 DNS 服务器,请相应地调整步骤。

若要为 VNet 本地终结点的域名为 <instance-name>.<dns-zone>.database.chinacloudapi.cn 的实例设置专用终结点的域名解析,请遵循以下两个过程之一,具体取决于实例及其专用终结点是在相同的虚拟网络中还是在不同的虚拟网络中。

重要

请勿更改 Azure SQL 托管实例的 VNet 本地终结点域名在它自己的虚拟网络中的解析方式。 这样做会破坏实例执行管理操作的能力。

如果专用终结点和 Azure SQL 托管实例位于不同的虚拟网络中,请执行以下步骤。

完成这些步骤后,从终结点虚拟网络内部连接到 <instance-name>.<dns-zone>.database.chinacloudapi.cn 的 SQL 客户端将通过专用终结点以透明方式路由。

  1. 通过访问专用链接中心或执行以下步骤获取专用终结点的 IP 地址:

    1. 转到 Azure 门户中的 Azure SQL 托管实例。

    2. 在“安全性”下,选择“专用终结点连接”。

    3. 在表中找到专用终结点连接,并为所选连接选择“专用终结点名称”。

      Azure 门户的屏幕截图,其中突出显示了包含专用终结点名称的专用终结点连接窗格。

    4. 在“*概述”页中,选择网络接口。

      Azure 门户专用终结点连接概述的屏幕截图,其中突出显示了网络接口。

    5. 在“概述”页上,选中“概要”来标识和复制“专用 IP 地址”。

      Azure 门户专用终结点连接的网络接口的屏幕截图,其中突出显示了专用 IP 地址。

  2. 创建名为 privatelink.<dns-zone>.database.chinacloudapi.cn 的专用 Azure DNS 区域

  3. 将专用 DNS 区域链接到终结点虚拟网络

  4. 在 DNS 区域中,使用以下值创建新的记录集:

    • 名称:<instance-name>
    • 类型:A
    • IP 地址:在之前的设置中获取的专用终结点的 IP 地址。

后续步骤