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 托管实例的专用终结点更安全,并简化重要连接方案的实现。 这些方案包括:

  • Airlock: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 服务器,请相应地调整步骤。

若要为具有域名 <instance-name>.<dns-zone>.database.chinacloudapi.cn 的 VNet 本地终结点的实例设置一个专用终结点的域名解析,请根据实例及其专用终结点是位于同一虚拟网络还是不同虚拟网络,按照本节中的其中一种方法进行操作。

重要

不要更改 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. 将专用 DNS 区域链接到终结点虚拟网络

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

    • 名称:<instance-name>
    • 类型:A
    • IP 地址:在上一集中获取的专用终结点的 IP 地址