applies to:Azure SQL Managed Instance
本文概述了Azure SQL Managed Instance的专用终结点,以及配置专用终结点的步骤。 专用终结点在一个服务和多个虚拟网络之间建立安全、隔离的连接,不会公开服务的整个网络基础结构。
概述
Private Link是Azure技术,可在所选的虚拟网络中提供Azure SQL Managed Instance。 网络管理员可以在其虚拟网络中为 Azure SQL 托管实例建立一个专用终结点,而在终结点激活前,SQL 管理员可以选择接受或拒绝该终结点。 专用终结点在一个服务和多个虚拟网络之间建立安全、隔离的连接,不会公开服务的整个网络基础结构。
专用终结点与 VNet 本地终结点有何不同
部署的每个Azure SQL Managed Instance的默认 VNet 本地终结点的行为就像运行该服务的计算机物理附加到虚拟网络一样。 它允许通过路由表、网络安全组、DNS 解析、防火墙和类似机制进行全面的流量控制。 还可以使用此终结点使实例参与需要连接到除1433端口以外的场景,例如故障转移组、分布式事务和托管实例链接。 尽管 VNet 本地终结点提供了灵活性,但在针对特定场景(尤其是涉及多个虚拟网络或租户的场景)进行配置时,它会增加复杂性。
相比之下,设置专用终结点就像将物理网络电缆从运行Azure SQL Managed Instance的计算机扩展到另一个虚拟网络。 此连接路径是通过Azure Private Link技术建立的。 它仅允许从专用终结点到 Azure SQL 托管实例的单向连接。 此外,它只承载端口 1433(标准 TDS 流量端口)上的流量。 这样,Azure SQL Managed Instance就可用于其他虚拟网络,而无需设置网络对等互连或打开实例的公共终结点。 即使将实例移到另一个子网,任何已建立的专用终结点也会继续指向它。
有关Azure SQL Managed Instance支持的不同类型的终结点的更详细讨论,请参阅 Communication 概述。
何时使用专用终结点
Azure SQL Managed Instance的专用终结点比使用
- Airlock:使用跳转服务器和 ExpressRoute 网关在虚拟网络中部署用于Azure SQL Managed Instance的专用终结点,在本地和云资源之间提供安全性和隔离。
- 中心和辐射拓扑:分支虚拟网络中的专用终结点将流量从 SQL 客户端和应用程序引导到中心虚拟网络中的 Azure SQL 托管实例,从而建立明确的网络隔离和责任分离。
- 发布者/消费者:发布者租户(例如 ISV)在其虚拟网络中管理多个 SQL 托管实例。 Publisher在其他租户的虚拟网络中创建专用终结点,使实例可供其使用者使用。
- Azure PaaS 和 SaaS 服务的集成:某些 PaaS 和 SaaS 服务(如 Azure Data Factory)可以创建和管理Azure SQL Managed Instance的专用终结点。
使用专用终结点相对于 VNet 本地终结点或公共终结点的好处包括:
- IP 地址可预测性:Azure SQL 托管实例的专用终结点被分配了一个来自其子网地址范围的固定 IP 地址。 即使 VNet 本地终结点和公共终结点的 IP 地址发生变化,此固定 IP 地址仍保持静态。
- 细粒度网络访问:专用终结点仅在其虚拟网络内可见。
- 强网络隔离:在对等互连的场景中,对等互连虚拟网络建立双向连接,而专用终结点是单向的,并且不会将其网络中的资源暴露给 Azure SQL 托管实例。
- 避免地址重叠:多个虚拟网络之间建立对等关系需要仔细规划 IP 空间分配,在地址空间重叠时可能会造成问题。
- 节省 IP 地址空间:专用终结点仅使用其子网地址空间中的一个 IP 地址。
限制
- Azure SQL Managed Instance要求确切的实例hostname显示在 SQL 客户端发送的connection string中。 不支持使用专用终结点的 IP 地址,并且尝试这样做会失败。 若要解决此问题,请配置 DNS 服务器,或使用专用 DNS 区域,如为专用终结点设置域名解析中所述。
- 尚不支持自动注册 DNS 名称。 请改为按照为专用终结点设置域名解析中的步骤执行操作。
- 用于SQL Managed Instance的专用终结点只能用于连接到端口 1433(用于 SQL 流量的标准 TDS 端口)。 需要通过其他端口通信的更复杂连接场景必须通过实例的 VNet 本地终结点建立。
- Azure SQL Managed Instance专用终结点需要特殊设置来配置所需的 DNS 解析,如 设置专用终结点的域名解析中所述。
- 无论连接类型设置如何,公共终结点始终都会使用代理连接类型。
在虚拟网络中创建专用终结点
若要为Azure SQL Managed Instance创建专用终结点,需要实例的资源 ID 和目标子资源类型(managedInstance)。 使用 Azure 门户时,请选择 Microsoft。Sql/managedInstances作为资源类型和托管实例作为目标资源。 门户向导将处理其余操作。
使用 Azure 门户、Azure PowerShell 或 Azure CLI 创建专用终结点:
重要
创建专用终结点后,还必须 设置域名解析。 如果没有适当的 DNS 配置,则通过专用终结点连接到托管实例的连接会失败。
创建专用终结点后,可能还需要在目标虚拟网络中批准其创建;请参阅 “查看并批准创建专用终结点的请求”。
若要使专用终结点 SQL Managed Instance完全正常运行,请按照说明设置专用终结点的域名解析。
在 PaaS 或 SaaS 服务中创建专用终结点
某些Azure PaaS 和 SaaS 服务可以使用专用终结点从其环境中访问数据。 在这样的服务中设置专用终结点(有时称为“托管专用终结点”或“托管虚拟网络中的专用终结点”)的过程在不同的服务中也有所不同。 管理员仍需要查看和批准Azure SQL Managed Instance上的请求,如 Review 中所述,并批准创建专用终结点的请求。
注意
Azure SQL 托管实例要求 SQL 客户端的连接字符串需将实例名称作为域名的第一段(例如:<instance-name>.<dns-zone>.database.chinacloudapi.cn)。 尝试通过其 IP 地址连接到Azure SQL Managed Instance专用终结点的 PaaS 和 SaaS 服务将无法连接。
创建跨租户专用终结点
还可以在不同的Azure租户中创建用于Azure SQL Managed Instance的专用终结点。 为此,虚拟网络中的管理员(在该网络中,专用终结点将被显示)首先必须获取他们即将从中请求专用终结点的 Azure SQL 托管实例的完整资源 ID。 利用此信息,可以在Private Link中心创建新的专用终结点。 与以前一样,Azure SQL Managed Instance 的管理员收到一个请求,他们可以审查并批准或拒绝该请求,具体步骤可参考 审查并批准创建专用终结点的请求。
审查并批准创建专用终结点的请求
发出创建专用终结点的请求后,SQL 管理员可以管理与Azure SQL Managed Instance的专用终结点连接。 管理新专用终结点连接的第一步是审查并批准专用终结点。 如果创建专用终结点的用户或服务对Azure SQL Managed Instance资源具有足够的 Azure RBAC 权限,则此步骤是自动执行的。 如果用户没有足够的权限,则必须手动完成专用终结点的评审和批准。
若要批准专用终结点,请执行以下步骤:
在 Azure 门户中,转到 Azure SQL 托管实例。
在“安全性”下,选择“专用终结点连接”。
Azure门户的截图显示专用终结点连接页面,有两个挂起的连接。
查看状态为 “挂起”的连接,并选中该框以选择一个或多个专用终结点连接以批准或拒绝。
选择“批准”或“拒绝”,然后在验证操作的对话框中选择“是”。
在你批准或拒绝连接后,“专用终结点连接”列表会反映出当前专用终结点连接的状态,以及“请求/响应消息”。
为专用终结点设置域名解析
创建专用终结点到 Azure SQL 托管实例后,需要配置域名解析。 否则,登录尝试会失败。 以下方法适用于使用Azure DNS解析的虚拟网络。 如果你的虚拟网络配置为使用自定义 DNS 服务器,请相应地调整步骤。
若要为具有域名 <instance-name>.<dns-zone>.database.chinacloudapi.cn 的 VNet 本地终结点的实例设置一个专用终结点的域名解析,请根据实例及其专用终结点是位于同一虚拟网络还是不同虚拟网络,按照本节中的其中一种方法进行操作。
重要
请勿更改 Azure SQL Managed Instance 域名的 VNet 本地终结点在其自身虚拟网络中的解析方式。 这样做会破坏实例执行管理操作的能力。
如果专用终结点和Azure SQL Managed Instance位于不同的虚拟网络中,请执行以下步骤。
完成这些步骤后,从终结点虚拟网络内部连接到 <instance-name>.<dns-zone>.database.chinacloudapi.cn 的 SQL 客户端通过专用终结点以透明方式路由。
访问Private Link中心或通过执行以下步骤获取专用终结点的 IP 地址:
在 Azure 门户中,转到 Azure SQL 托管实例。
在“安全性”下,选择“专用终结点连接”。
在表中找到专用终结点连接,并选择所选连接的 专用终结点名称 。
Azure 门户的截图,专用终结点连接的窗格中强调了专用终结点的名称。
在 “概述 ”页上,选择网络接口。
在“概述”页上,查看“必备信息”以查找并复制“专用 IP 地址”。
Azure 门户的

在 DNS 区域中,使用以下值创建新的记录集:
- 名称:
<instance-name> - 类型:A
- IP 地址:在上一集中获取的专用终结点的 IP 地址
- 名称: