什麼是 Azure Private Link 服務?

Azure Private Link 服務是由 Azure Private Link 所支援的自有服務參考。 您可以針對在 Azure 標準負載平衡器後方執行的服務,啟用 Private Link 存取,讓服務取用者可以從自己的 VNet 私下存取服務。 您的客戶可以在其虛擬網路內建立私人端點,並將其對應到此服務。 本文說明與服務提供者端相關的概念。

Azure 私人連結服務的圖表。

圖:Azure Private Link 服務。

工作流程

私人連結服務工作流程的圖表。

圖:Azure Private Link 服務工作流程。

  • 將應用程式設定為在虛擬網路中的標準負載平衡器後方執行。 如果您已在標準負載平衡器後方設定應用程式,則可以略過此步驟。

  • 建立參考上述負載平衡器的Private Link 服務。 在負載平衡器選取程序中,選擇您想要接收流量的前端 IP 設定。 為 Private Link 服務選擇 NAT IP 位址的子網路。 建議您在子網路中至少有八個可用的 NAT IP 位址。 所有取用者流量都會顯示為來自服務提供者的私人 IP 位址集區。 為 Private Link 服務選擇適當的屬性/設定。

    注意

    僅在 Standard Load Balancer 上支援 Azure Private Link 服務。

共用服務

建立 Private Link 服務之後,Azure 會根據您為服務提供的名稱,產生名為別名的全域唯一名稱 Moniker。 您可以離線與客戶共用服務的別名或資源 URI。 取用者可以使用別名或資源 URI 來啟動 Private Link 連線。

管理連線要求

取用者起始連線之後,服務提供者可以接受或拒絕連線要求。 所有連線要求都會列在 Private Link 服務的 privateendpointconnections 屬性底下。

刪除服務

如果 Private Link 服務不再使用中,您可以將其刪除。 不過,在刪除服務之前,請確定沒有與其相關聯的私人端點連線。 您可以拒絕所有連線並刪除服務。

屬性

Private Link 服務指定下列屬性:

屬性 說明
佈建狀態 (provisioningState) 唯讀屬性,列出目前 Private Link 服務的佈建狀態。 適用的佈建狀態為:刪除中失敗成功、*更新中。 當佈建狀態為成功時,您已成功佈建 Private Link 服務。
別名 (別名) 別名是服務的全域唯一唯讀字串。 其可協助您遮罩服務的客戶資料,同時為服務建立易於共用的名稱。 當您建立 Private Link 服務時,Azure 會產生您可以與客戶共用的服務別名。 您的客戶可以使用此別名來要求與服務的連線。
可見度 (可見度) 可見度是控制 Private Link 服務曝光設定的屬性。 服務提供者可以選擇使用 Azure 角色型存取控制權限,來限制其服務暴露在訂閱的程度。 一組受限的訂閱也可以用來限制暴露。
自動核准 (autoApproval) 自動核准可控制對 Private Link 服務的自動存取。 當從這些訂用帳戶中的私人端點要求連線時,會自動核准自動核准清單中指定的訂用帳戶。
負載平衡器前端 IP設定 (loadBalancerFrontendIpConfigurations) Private Link 服務會繫結至 Standard Load Balancer 的前端 IP 位址。 所有以服務為目標的流量都會到達 SLB 的前端。 您可以設定 SLB 規則,將此流量導向至應用程式執行所在的適當後端集區。 負載平衡器前端 IP 設定與 NAT IP 設定不同。
NAT IP 設定 (ipConfigurations) 此屬性是指 Private Link 服務的 NAT (網路位址轉譯) IP 設定。 您可以從服務提供者的虛擬網路中的任何子網路中選擇 NAT IP。 Private Link 服務會在 Private Link 流量上執行目的地端 NAT-ing。 此 NAT 可確保來源 (消費者端) 和目的地 (服務提供者) 位址空間之間沒有 IP 衝突。 在目的地或服務提供者端,NAT IP 位址會顯示為服務所接收之所有封包的來源 IP。 您的服務所傳送的所有封包都會顯示目的地 IP
私人端點連線 (privateEndpointConnections) 此屬性會列出連線到 Private Link 服務的私人端點。 多個私人端點可以連線到相同的 Private Link 服務,而服務提供者可以控制個別私人端點的狀態。
TCP Proxy 第 2 版 (EnableProxyProtocol) 此屬性可讓服務提供者使用 tcp Proxy 第 2 版來擷取服務取用者的相關連線資訊。 服務提供者負責設定接收者設定,以能夠剖析 Proxy 通訊協定第 2 版標頭。

詳細資料

  • 可從任何公用區域中已核准的私人端點來存取 Private Link 服務。 您可以從相同的虛擬網路和區域同儕節點虛擬網路連線至私人端點。 您可以使用私人 VPN 或 ExpressRoute 連線,從全域對等虛擬網路和內部部署連線到私人端點。

  • 建立 Private Link 服務時,會建立資源生命週期的網路介面。 客戶無法管理此介面。

  • Private Link 服務必須部署在與虛擬網路和 Standard Load Balancer 相同的區域中。

  • 您可以從屬於不同虛擬網路、訂閱和/或 Active Directory 租用戶的多個私人端點,來存取單一 Private Link 服務。 連線是透過連線工作流程建立的。

  • 您可以使用不同的前端 IP 設定,在同一個 Standard Load Balancer 上建立多個 Private Link服務。 您可以為每個 Standard Load Balancer 和每個訂用帳戶建立的 Private Link 服務數目都有所限制。 如需詳細資訊,請參閱 Azure 限制

  • Private Link 服務可以具有多個連結至其中的 NAT IP 設定。 選擇多個 NAT IP 設定可協助服務提供者進行縮放。 目前,服務提供者可以為每個 Private Link 服務指派最多八個 NAT IP 位址。 透過每個 NAT IP 位址,您可以為 TCP 連線指派更多連接埠,進而相應放大。將多個 NAT IP 位址新增至 Private Link 服務之後,您就無法刪除 NAT IP 位址。 這項限制可確保刪除 NAT IP 位址時,作用中的連線不會受到影響。

Alias

別名是服務的全域唯一名稱。 其可協助您遮罩服務的客戶資料,同時為服務建立易於共用的名稱。 當您建立 Private Link 服務時,Azure 會產生您可以與客戶共用的服務別名。 您的客戶可以使用此別名來要求與服務的連線。

別名是由三個部分組成:Prefix.GUID.Suffix

  • 前置詞是服務名稱。 您可以挑選自己的前置詞。 「別名」建立之後,就無法加以變更,因此請適當地選取前置詞。

  • GUID 將由平台提供。 此 GUID 會讓名稱全域是唯一的。

  • Azure 會附加尾碼:region.azure.privatelinkservice

完整別名:前置詞。 {GUID}.region.azure.privatelinkservice

控制服務曝光

Private Link 服務為您提供在 [可見度] 設定中的三個選項,以控制服務的曝光。 您的可見度設定可決定取用者是否可以連線到服務。 以下是最嚴格到最不嚴格的可見度設定選項:

  • 僅限角色型存取控制:如果您的服務是用於從您擁有的不同虛擬網路進行私人取用,請使用與相同 Active Directory 租用戶相關聯訂閱內的角色型存取控制。 可透過角色型存取控制來允許跨租用戶可見度

  • 受訂用帳戶限制:如果將在不同的租用戶之間取用服務,您可以將曝光限制在一組您信任的有限訂用帳戶。 可以預先核准授權。

  • 具有別名的任何人:如果您想要將服務設為公用,並允許具有 Private Link 服務別名的任何人要求連線,請選取此選項。

控制服務存取

暴露 (受可見度設定控制) Private Link 服務的消費者,可以在虛擬網路中建立私人端點,並要求連線至 Private Link 服務。 將會以 Private Link 服務物件上的擱置狀態來建立私人端點連線。 服務提供者負責處理連線要求。 您可以核准連線、拒絕連線或刪除連線。 只有核准的連線才能將流量傳送至 Private Link 服務。

在 Private Link 服務上使用自動核准屬性,即可自動化核准連線的動作。 自動核准是一種能力,服務提供者可預先核准一組訂用帳戶的,以自動存取其服務。 客戶必須離線共用其訂用帳戶,服務提供者才能將其新增至自動核准清單。 自動核准是可見度陣列的子集。

可見度可控制曝光設定,而自動核准會控制服務的核准設定。 如果客戶在自動核准清單中要求來自訂閱的連線,則會自動核准連線,並建立連線。 服務提供者不需要手動核准要求。 如果客戶要求來自可見度陣列中訂閱的連線,而不是在自動核准陣列中,則要求將會連線到服務提供者。 服務提供者必須手動核准連線。

使用 TCP Proxy 第 2 版取得連線資訊

使用私人連結服務時,來自私人端點之封包的來源 IP 位址是使用從提供者虛擬網路配置的 NAT IP,在服務提供者端上轉譯的網路位址 (NAT)。 應用程式會收到配置的 NAT IP 位址,而不是服務消費者的實際來源 IP 位址。 如果您的應用程式需要消費者端的實際來源 IP 位址,則您可以在服務上啟用 Proxy 通訊協定,並從 Proxy 通訊協定標頭擷取資訊。 除了來源 IP 位址之外,Proxy 通訊協定標頭也會包含私人端點的 LinkID。 來源 IP 位址和 LinkID 的組合可協助服務提供者唯一識別其取用者。

如需 Proxy 通訊協定的詳細資訊,請造訪這裡

會使用自訂的 Type-Length-Value (TLV) 向量來編碼此資訊,如下所示:

自訂 TLV 詳細資料:

欄位 長度 (八進位) 描述
類型 1 PP2_TYPE_AZURE (0xEE)
長度 2 值的長度
1 PP2_SUBTYPE_AZURE_PRIVATEENDPOINT_LINKID (0x01)
4 UINT32 (4 個位元組) 代表私人端點的 LINKID。 以位元組由小到大的格式編碼。

注意

服務提供者負責確定標準負載平衡器背後的服務已設定為當在私人連結服務上啟用 Proxy 通訊協定時,根據規格剖析 Proxy 通訊協定標頭。 如果在私人連結服務上啟用 Proxy 通訊協定設定,但服務提供者的服務未設定為剖析標頭,則要求將會失敗。 如果在私人連結服務上未啟用設定時,服務提供者的服務預期 Proxy 通訊協定標頭,則要求將會失敗。 啟用 Proxy 通訊協定設定之後,Proxy 通訊協定標頭也會包含在從主機到後端虛擬機器的 HTTP/TCP 健全狀態探查中。 用戶端資訊不包含在標頭中。

在作為屬性 linkIdentifierPrivateEndpointConnection 中找到屬於 PROXYv2 (TLV) 通訊協定的比對 LINKID

如需詳細資訊,請參閱 Private Link 服務 API

限制

以下是使用 Private Link 服務時的已知限制:

  • 僅在 Standard Load Balancer 上支援。 基本負載平衡器上不支援。

  • 只有在 NIC 設定後端集區Standard Load Balancer才支援。 Standard Load Balancer IP 位址設定後端集區時不支援。

  • 僅支援 IPv4 流量

  • 僅支援 TCP 和 UDP 流量

  • Private Link 服務的閒置逾時約 5 分鐘 (300 秒)。 為了避免達到此限制,透過 Private Link 服務連線的應用程式必須使用低於該時間的 TCP Keep Alives。

下一步