什麼是 Azure Private Link 服務?
Azure Private Link 服務是由 Azure Private Link 所支援的自有服務參考。 您可以針對在 Azure 標準負載平衡器後方執行的服務,啟用 Private Link 存取,讓服務取用者可以從自己的 VNet 私下存取服務。 您的客戶可以在其虛擬網路內建立私人端點,並將其對應到此服務。 本文說明與服務提供者端相關的概念。
圖:Azure Private Link 服務。
工作流程
圖:Azure Private Link 服務工作流程。
建立您的 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 服務。 |
別名 (alias) | 別名是服務全域唯一的唯讀字串。 它可協助您遮罩服務的客戶資料,同時為您的服務建立易於共用的名稱。 當您建立 Private Link 服務時,Azure 會產生您可以與客戶共用之服務的別名。 您的客戶可以使用此別名來要求連線至您的服務。 |
可見度 (visibility) | 可見度是控制 Private Link 服務曝光設定的屬性。 服務提供者可以選擇使用 Azure 角色型存取控制權限,來限制其服務對訂用帳戶的曝光程度。 限制的一組訂用帳戶也可以用來限制曝光。 |
自動核准 (autoApproval) | 自動核准可控制對 Private Link 服務的自動存取權。 當從這些訂用帳戶中的私人端點要求連線時,自動核准清單中指定的訂用帳戶會自動核准。 |
負載平衡器前端 IP 設定 (loadBalancerFrontendIpConfigurations) | Private Link 服務會繫結至 Standard Load Balancer 的前端 IP 位址。 所有針對服務的流量都會流向 SLB 的前端。 您可以設定 SLB 規則,將此流量導向應用程式執行所在的適當後端集區。 負載平衡器前端 IP 設定與 NATIP 設定不同。 |
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 Proxy V2 (EnableProxyProtocol) | 此屬性可讓服務提供者使用 TCP Proxy v2 來擷取服務取用者的連線資訊。 服務提供者負責設定接收者設定,以便能夠剖析 Proxy 通訊協定 v2 標頭。 |
詳細資料
可以從任何公用區域中核准的私人端點存取 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 服務指派最多 8 個 NAT IP 位址。 使用每個 NAT IP 位址,您可以為 TCP 連線指派更多連接埠,進而擴增。您可以將多個 NAT IP 位址新增至 Private Link 服務,但必須在設定後至少維護一個 NAT IP 位址。 您將受限於刪除最後一個剩餘的 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 v2 取得連線資訊
注意
Private Link 服務上的 TCP Proxy v2 組態會為所有負載平衡器和其後端 VM 啟用。 如果在一個 PLS 上設定 TCP Proxy v2,則如果 TCP Proxy v2 共用相同的負載平衡器或後端集區,請在其他 PLS 資源上進行設定,否則健康情況探查將會失敗。
在私人連結服務中,來自私人端點之封包的來源 IP 位址,是服務提供者端使用從提供者虛擬網路配置的 NATIP 轉譯的網路位址 (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 | 代表私人端點 LINKID 的 UINT32 (4 個位元組)。 以位元組由小到大的格式編碼。 |
注意
服務提供者負責確定標準負載平衡器背後的服務已設定為當在私人連結服務上啟用 Proxy 通訊協定時,根據規格剖析 Proxy 通訊協定標頭。 如果在私人連結服務上啟用 Proxy 通訊協定設定,但服務提供者的服務未設定為剖析標頭,則要求將會失敗。 如果在私人連結服務上未啟用設定,但服務提供者的服務預期 proxy 通訊協定標頭,則要求將會失敗。 啟用 Proxy 通訊協定設定之後,Proxy 通訊協定標頭也會包含在從主機到後端虛擬機器的 HTTP/TCP 健全狀態探查中。 用戶端資訊未包含在標頭中。
在作為屬性 linkIdentifier
的 PrivateEndpointConnection
中找到屬於 PROXYv2 (TLV) 通訊協定的比對 LINKID
。
如需詳細資訊,請參閱 Private Link 服務 API。
限制
以下是使用 Private Link 服務時的已知限制:
僅 Standard Load Balancer 支援。 Basic Load Balancer 不支援。
僅 Standard Load Balancer 支援,其中後端池區由 NIC 所設定。 Standard Load Balancer 不支援,其中後端集區由 IP 位址所設定。
僅支援 IPv4 流量
僅支援 TCP 和 UDP 流量
Private Link 服務閒置逾時約 5 分鐘 (300 秒)。 為了避免達到此限制,透過 Private Link 服務連線的應用程式必須使用低於該時間的 TCP Keepalives。
若要類型設定為 後端集區 的輸入 NAT 規則與 Azure Private Link 服務一起運作,必須設定負載平衡規則。
Private Link 服務上的 TCP Proxy v2 組態會為所有負載平衡器和其後端 VM 啟用。 如果在一個 PLS 上設定 TCP Proxy v2,則如果 TCP Proxy v2 共用相同的負載平衡器或後端集區,請在其他 PLS 資源上進行設定,否則健康情況探查將會失敗。