Compartilhar via

什么是Azure Private Link服务?

Azure Private Link服务是对由Azure Private Link提供支持的你自己的服务的引用。 在 Azure 标准负载均衡器 后面运行的服务可以启用专用链接访问,以便服务使用者能够从自己的虚拟网络(VNet)中私密访问它。 你的客户可在他们的虚拟网络中创建专用终结点,并将此终结点映射到此服务。 本文解释与服务提供商一方相关的概念。

Azure专用链接服务的图示。

Figure:Azure Private Link Service.

Workflow

Azure 专用链接服务工作流的示意图。

图:Azure Private Link服务工作流。

  • 将应用程序配置为在虚拟网络中的标准负载均衡器后面运行。 如果已在标准负载均衡器后面配置了应用程序,则可以跳过此步骤。

  • 创建引用上述负载均衡器的Private Link服务。 在负载均衡器选择过程中,选择要在其中接收流量的前端 IP 配置。 为 Private Link 服务选择 NAT IP 地址的子网。 建议至少提供子网中可用的八个 NAT IP 地址。 所有使用者流量看上去都源自此专用 IP 地址池,并发往服务提供商。 为Private Link服务选择适当的属性/设置。

    注意

    Azure Private Link服务仅在Standard Load Balancer上受支持。

共享服务

创建Private Link服务后,Azure 将基于您为服务提供的名称生成一个称为 alias 的全局唯一名称标识符。 可与客户脱机共享服务的别名或资源 URI。 使用者可以使用别名或资源 URI 启动Private Link连接。

管理连接请求

使用者发起连接后,服务提供商可以接受或拒绝连接请求。 所有连接请求都将列在Private Link服务上的 privateendpointconnections 属性下。

删除您的服务

如果Private Link服务不再使用,则可以将其删除。 但是,在删除该服务之前,请确保没有任何专用终结点连接与其关联。 可以拒绝所有连接并删除服务。

属性

Private Link服务指定以下属性:

属性 说明
预配状态 (provisioningState) 列出Private Link服务的当前预配状态的只读属性。 适用的预配状态为:正在删除、失败、成功、正在更新。 当预配状态为 Succeeded 时,已成功预配Private Link服务。
别名 (alias) 别名是一个用于服务的全局唯一的只读字符串。 它可以帮助掩码服务的客户数据,同时为服务创建一个易于共享的名称。 创建Private Link服务时,Azure生成可与客户共享的服务的别名。 客户可以使用此别名请求连接到你的服务。
可见性 (visibility) 可见性是控制Private Link服务的曝光设置的属性。 服务提供商可以选择使用Azure基于角色的访问控制权限限制其服务对订阅的公开。 还可以使用一组受限的订阅来限制曝光程度。
自动批准 (autoApproval) 自动审批控制对Private Link服务的自动访问。 从这些订阅中的专用终结点请求连接时,会自动批准“自动批准”列表中指定的订阅。
负载均衡器前端 IP 配置 (loadBalancerFrontendIpConfigurations) Private Link服务绑定到Standard Load Balancer的前端 IP 地址。 发往服务的所有流量将抵达负载均衡器的前端。 可以配置 SLB 规则,以将此流量定向到运行应用程序的相应后端池。 负载均衡器前端 IP 配置不同于 NAT IP 配置。
NAT IP 配置 (ipConfigurations) 此属性是指Private Link服务的 NAT(网络地址转换)IP 配置。 可以从服务提供商虚拟网络中的任何子网选择 NAT IP。 Private Link服务对Private Link流量执行目标端 NAT 处理。 此 NAT 可以确保源(使用者端)与目标(服务提供商)地址空间之间不会出现 IP 冲突。 在目标或服务提供商端,NAT IP 地址显示为你的服务接收的所有数据包的源 IP。 对于你的服务发送的所有数据包,都将显示目标 IP。
专用终结点连接 (privateEndpointConnections) 此属性列出连接到 Private Link 服务的专用终结点。 多个专用终结点可以连接到同一Private Link服务,服务提供商可以控制单个专用终结点的状态。
TCP 代理 V2 (EnableProxyProtocol) 此属性允许服务提供商使用 tcp 代理 v2 检索有关服务使用者的连接信息。 服务提供商负责设置接收方配置,以便能够分析代理协议 v2 标头。

详细信息

  • Private Link服务可以从世纪互联运营的所有Azure区域中的批准专用终结点进行访问。 可以从同一虚拟网络和区域性对等互连虚拟网络访问专用终结点。 可以通过专用 VPN 或 ExpressRoute 连接,从全球对等互连的虚拟网络和本地网络访问专用终结点。

  • 创建Private Link服务后,将为资源的生命周期创建网络接口。 此接口不可由客户管理。

  • Private Link服务必须部署在虚拟网络和Standard Load Balancer所在的同一区域中。

  • 可以从属于不同虚拟网络、订阅和/或Microsoft Entra租户的多个专用终结点访问单个Private Link服务。 连接是通过连接工作流建立的。

  • 可以使用不同的前端 IP 配置在同一Standard Load Balancer上创建多个Private Link服务。 每个 Standard Load Balancer 和每个订阅可以创建的 Private Link 服务数量受到限制。 有关详细信息,请参阅 Azure 限制

  • 私有链接服务可以有多个 NAT IP 配置与之链接。 选择多个 NAT IP 配置有助于服务提供商进行扩展。 目前,服务提供商可以为每个Private Link服务最多分配 8 个 NAT IP 地址。 使用每个 NAT IP 地址,可以为 TCP 连接分配更多端口,从而横向扩展。可以将多个 NAT IP 地址添加到Private Link服务,但配置后必须至少维护一个 NAT IP 地址。 将无法删除最后一个剩余的 NAT IP,这是为了确保活动连接不会因 NAT IP 地址不可用而受影响。

别名

“别名”是服务的全局唯一名称。 它可以帮助掩码服务的客户数据,同时为服务创建一个易于共享的名称。 创建Private Link服务时,Azure生成可与客户共享的服务的别名。 客户可以使用此别名请求连接到你的服务。

别名由三部分组成:前缀.GUID.后缀

  • 前缀是服务名称。 可以选取自己的前缀。 创建“别名”后,无法更改它,因此请适当地选择前缀。

  • GUID 将由平台提供。 此 GUID 使名称全局唯一。

  • 后缀由 Azure 追加:region.azure.privatelinkservice

完整别名:前缀。 {GUID}.<区域>.azure.privatelinkservice

控制服务的公开

Private Link服务在Visibility设置中提供了三个选项以控制服务的可见性。 可见性设置决定使用者是否可以连接到你的服务。 下面是可见性设置选项(从限制最多到限制最少):

  • 基于角色的访问控制:如果您的服务供不同虚拟网络专用使用,而这些网络均为您所有,请在与同一微软 Entra 租户关联的订阅中使用基于角色的访问控制。 通过基于角色的访问控制允许跨租户可见性。

  • 受订阅限制:如果服务会在不同租户之间使用,则只能将其公开给你信任的有限订阅集。 可以预先批准授权。

  • 使用您别名的任何人:如果要公开您的服务,并允许任何具有您的Private Link服务别名的人请求连接,请选择此选项。

控制服务的访问

对Private Link服务进行可见性设置控制的使用者可以在其虚拟网络中创建专用终结点,并请求与Private Link服务建立连接。 专用终结点连接将在 Private Link 服务对象上以 Pending 状态被创建。 服务提供商负责处理连接请求。 可以批准连接、拒绝连接,或删除连接。 只有已批准的连接才能将流量发送到Private Link服务。

可以通过使用Private Link服务的自动审批属性来自动批准连接。 "自动批准"是一种服务提供商能够预先审批一组订阅以自动访问其服务的能力。 客户需要脱机共享其订阅,才能让服务提供商将这些订阅添加到自动批准列表中。 自动批准是可见性数组的子集。

可见性控制曝光设置,而自动批准则控制服务的审批设置。 如果客户从自动批准列表中的订阅请求连接,将自动批准该连接并建立连接。 服务提供商不需要手动批准请求。 如果客户从可见性数组而不是自动批准数组中的订阅请求连接,该请求将抵达服务提供商。 服务提供商必须手动批准连接。

使用 TCP 代理 v2 获取连接信息

注意

Private Link 服务上的 TCP 代理 v2 配置在所有负载均衡器及其后端 VM 上启用。 如果在一个 PLS 上配置了 TCP 代理 v2,请在其他 PLS 资源上配置它(前提是它们共享相同的负载均衡器或后端池),否则运行状况探测会失败。

在专用链接服务中,来自专用终结点的数据包的源 IP 地址在服务提供商端进行网络地址转换 (NAT),使用的是已从提供商的虚拟网络中分配的 NAT IP。 应用程序将接收分配的 NAT IP 地址,而非接收服务使用者的实际源 IP 地址。 如果应用程序需要来自使用方的实际源 IP 地址,则你可以在服务上启用代理协议,并从代理协议标头中检索该信息。 除了源 IP 地址外,代理协议标头还携带专用终结点的 LinkID。 源 IP 地址和 LinkID 的组合可以帮助服务提供商唯一识别其使用者。

有关代理协议的详细信息,请访问此处

此信息使用自定义的 Type-Length-Value (TLV) 向量进行编码,如下所示:

自定义 TLV 详细信息:

字段 长度(八进制) 说明
类型 1 PP2_TYPE_AZURE(0xEE)
长度 2 值的长度
价值 1 PP2_SUBTYPE_AZURE_PRIVATEENDPOINT_LINKID(0x01)
4 UINT32(4个字节),表示专用终结点的 LINKID。 编码为 little endian 格式。

注意

服务提供商负责确保在专用链接服务上启用代理协议时,将标准负载均衡器后面的服务配置为按照规范分析代理协议标头。 如果在专用链接服务上启用了代理协议设置,但未将服务提供商的服务配置为分析该标头,则请求会失败。 如果服务提供商的服务需要代理协议标头,而专用链接服务上未启用该设置,则请求会失败。 启用代理协议设置后,代理协议标头也将包含在从主机到后端虚拟机的 HTTP/TCP 运行状况探测中。 标头中不包含客户端信息。

在专用链接服务上启用代理协议时。 如果在专用链接服务上启用了代理协议设置,但未将服务提供商的服务配置为分析该标头,则请求会失败。 如果服务提供商的服务需要代理协议标头,而专用链接服务上未启用该设置,则请求会失败。 启用代理协议设置后,代理协议标头也将包含在从主机到后端虚拟机的 HTTP/TCP 运行状况探测中。 标头中不包含客户端信息。

PROXYv2 (TLV) 协议部分的匹配 LINKID 可以在 PrivateEndpointConnection 的属性 linkIdentifier 中找到。

有关详细信息,请参阅 Private Link Services API

限制

以下是使用 Private Link 服务时的已知限制:

  • 仅在标准负载均衡器上受支持。 基本负载均衡器不支持。

  • 仅在通过 NIC 配置后端池的标准负载均衡器上受支持。 标准负载均衡器在后端池按 IP 地址配置时不受支持。

  • 仅支持 IPv4 流量

  • 仅支持 TCP 和 UDP 流量

  • Private Link 服务有大约 5 分钟的空闲超时(300 秒)。 应用程序通过 Private Link Service 进行连接时,必须将 TCP Keepalive 的时间间隔设置为低于该时间,以避免达到此限制。

  • 对于要与 Azure 专属链接服务(Azure Private Link Service)配合使用、类型设置为 backend pool 的入站 NAT 规则,必须配置负载均衡规则。

  • Private Link 服务上的 TCP 代理 v2 配置在所有负载均衡器及其后端 VM 上启用。 如果在一个 PLS 上配置了 TCP 代理 v2,请在其他 PLS 资源上配置它(前提是它们共享相同的负载均衡器或后端池),否则运行状况探测会失败。

后续步骤

  • 使用 Azure PowerShell

  • 使用 Azure CLI