共用方式為


多租使用者和 Azure Private Link

Azure Private Link 提供 Azure 平臺服務的私人 IP 位址,以及裝載在 Azure 虛擬機器上的您自己的應用程式。 您可以使用 Private Link 從租使用者的 Azure 環境啟用私人連線。 當租使用者透過虛擬私人網路閘道(VPN 閘道)或 ExpressRoute 連線時,租使用者也可以使用 Private Link 從其內部部署環境存取您的解決方案。

許多大型 SaaS 提供者都會使用 Azure Private Link,包括 Snowflake Confluent Cloud MongoDB Atlas

在本文中,我們會檢閱如何為 Azure 裝載的多租使用者解決方案設定 Private Link。

主要考量

重迭的 IP 位址空間

Private Link 為多租使用者解決方案提供強大的功能,讓租使用者可以透過私人位址空間存取服務。

不同的租使用者經常使用相同的或重迭的私人 IP 位址空間。 例如,您的多租使用者解決方案可能會使用 的 10.1.0.0/16 IP 位址空間。 假設租使用者 A 使用自己的內部部署網路與相同的 IP 位址空間,而巧合的租使用者 B 也會使用相同的 IP 位址空間。 您無法直接連線或將網路對等互連,因為 IP 位址範圍重迭。

當您使用 Private Link 來啟用從每個租使用者連線到多租使用者解決方案的連線時,每個租使用者的流量會自動套用網路位址轉譯 (NAT)。 每個租使用者都可以在各自的網路中使用私人 IP 位址,且流量會以透明方式流向多租使用者解決方案。 Private Link 會在流量上執行 NAT,即使租使用者和服務提供者都使用重迭的 IP 位址範圍:

Diagram showing connectivity between two tenants and a multitenant service, all of which use the same IP address space.

當流量抵達多租使用者解決方案時,已轉譯。 這表示流量似乎源自多租使用者服務自己的虛擬網路 IP 位址空間。 Private Link 提供 TCP Proxy 通訊協定 v2 功能,可讓多租使用者服務知道傳送要求的租使用者,甚至是來源網路的原始 IP 位址。

服務選取

當您使用 Private Link 時,請務必考慮您想要允許輸入連線的服務。

Azure Private Link 服務 會與標準負載平衡器後方的虛擬機器搭配使用。

您也可以搭配其他 Azure 服務使用 Private Link。 這些服務包括應用程式裝載平臺,例如Azure App 服務。 它們也包括Azure 應用程式閘道或 Azure API 管理,也就是網路和 API 閘道。

您使用的應用程式平臺會決定 Private Link 組態的許多層面,以及適用的限制。 此外,某些服務不支援輸入流量的 Private Link。

限制

請仔細考慮您可以根據解決方案架構建立的私人端點數目。 如果您使用平臺即服務 (PaaS) 應用程式平臺,請務必注意單一資源可支援的私人端點數目上限。 如果您執行虛擬機器,您可以將 Private Link 服務實例附加至標準負載平衡器 (SLB)。 在此設定中,您通常可以連線更多私人端點,但仍適用限制。 這些限制可能會決定您可以使用 Private Link 連線到資源的租使用者數目。 檢閱 Azure 訂用帳戶和服務限制、配額和條件約束 ,以瞭解端點和連線數目的限制。

此外,某些服務需要特殊的網路設定才能使用 Private Link。 例如,如果您使用 Private Link 搭配Azure 應用程式閘道,除了應用程式閘道資源的標準子網之外,還必須 布建專用子網

仔細測試您的解決方案,包括您的部署和診斷設定,並啟用 Private Link 設定。 某些 Azure 服務會在啟用私人端點時封鎖公用網際網路流量,這可能需要您變更部署和管理程式。

您可以選擇將解決方案部署為網際網路對向,也可以透過私人端點公開。 請考慮您的整體網路拓撲,以及每個租使用者流量所遵循的路徑。

當您的解決方案是以標準負載平衡器後方的虛擬機器為基礎時,您可以透過 Private Link 服務公開您的端點。 在此情況下,Web 應用程式防火牆和應用程式路由可能已是虛擬機器型工作負載的一部分。

許多 Azure PaaS 服務都支援 Private Link 進行輸入連線,即使是跨不同的 Azure 訂用帳戶和 Microsoft Entra 租使用者也一樣。 您可以使用該服務的 Private Link 功能來公開您的端點。

當您使用其他網際網路面向的服務,例如 Azure Front Door 時,請務必考慮它們是否支援輸入流量的 Private Link。 如果沒有,請考慮您的流量如何流經解決方案的每個路徑。

例如,假設您建置在虛擬機器擴展集上執行的網際網路面向應用程式。 您可以使用 Azure Front Door,包括其 Web 應用程式防火牆 (WAF),以達到安全性和流量加速,並設定 Front Door 透過私人端點將流量傳送至後端 (origin) 服務 。 租使用者 A 會使用公用端點連線到您的解決方案,而租使用者 B 則使用私人端點連線。 因為 Front Door 不支援連入連線的 Private Link,租使用者 B 的流量會略過您的 Front Door 及其 WAF:

Diagram showing requests coming through Azure Front Door, and also through a private endpoint, which bypasses Front Door.

隔離模型

Private Link 的設計訴求是支援多個個別用戶端可以使用單一應用層的案例,例如您的租使用者。 當您考慮隔離 Private Link 時,主要考慮的是您需要部署的資源數目,以支援您的需求。 您可以用於 Private Link 的租使用者隔離模型取決於您所使用的服務。

如果您使用 Private Link 服務搭配標準負載平衡器後方的虛擬機器,您可以考慮數個隔離模型。

考量事項 共用 Private Link 服務和共用負載平衡器 專用 Private Link 服務和專用負載平衡器 專用 Private Link 服務和共用負載平衡器
部署複雜度 中高,視租使用者數目而定 中高,視租使用者數目而定
作業複雜度 中高,視資源數目而定 中高,視資源數目而定
要考慮的限制 相同 Private Link 服務上的私人端點數目 每個訂用帳戶的 Private Link 服務數目 每個標準負載平衡器的 Private Link 服務數目
範例案例 具有共用應用層的大型多租使用者解決方案 每個租使用者的個別部署戳記 單一戳記中的共用應用層,具有大量租使用者

在這三個模型中,資料隔離和效能層級取決於您解決方案的其他元素,而 Private Link 服務部署實際上不會影響這些因素。

您可以考慮部署連線至標準負載平衡器的共用 Private Link 服務。 每個租使用者都可以建立私人端點,並用它來連線到您的解決方案。

單一 Private Link 服務實例支援大量的私人端點。 如果您耗盡限制,則可以部署更多 Private Link 服務實例,不過您也可以限制您可以在單一負載平衡器上部署的 Private Link 服務數目。 如果您預期會接近這些限制,請考慮使用以部署戳記為基礎的方法,並將共用負載平衡器和 Private Link 服務實例部署到每個戳記中。

您可以為每個租使用者部署專用的 Private Link 服務和專用負載平衡器。 當您針對每個租使用者有一組專用的虛擬機器時,例如當您的租使用者有嚴格的合規性需求時,這個方法就很合理。

您也可以使用共用的標準負載平衡器,為每個租使用者部署專用的 Private Link 服務實例。 不過,此模型不太可能提供許多好處。 此外,由於您可以在單一標準負載平衡器上部署的 Private Link 服務數目有限制,因此此模型不太可能超出小型多租使用者解決方案。

更常見的是,您可以部署多個共用 Private Link 服務。 此方法可讓您擴充解決方案可在一個共用負載平衡器上支援的私人端點數目。

使用私人端點的 Azure PaaS 服務隔離模型

當您部署 Azure 平臺即服務 (PaaS) 服務,並想要讓租使用者能夠使用私人端點存取這些服務時,您必須考慮特定服務的功能和限制。 此外,您必須考慮您的應用程式層資源是否專用於特定租使用者,或是否在租使用者之間共用。

如果您為每個租使用者部署一組專用應用層資源,您可能會為該租使用者部署一個私人端點,以用來存取其資源。 您不太可能耗盡任何 Private Link 相關服務限制,因為每個租使用者都有自己的專屬資源。

當您在租使用者之間共用應用層資源時,您可以考慮為每個租使用者部署私人端點。 可以附加至單一資源的私人端點數目有限制,而且每個服務的限制都不同。

Private Link 有數個在多租使用者環境中很有説明的功能。 不過,可用的特定功能取決於您所使用的服務。 虛擬機器和負載平衡器的基本 Azure Private Link 服務支援下列所有功能。 具有 Private Link 支援的其他服務可能只提供這些功能的子集。

服務別名

當租使用者使用 Private Link 設定服務存取權時,他們必須能夠識別您的服務,讓 Azure 可以建立連線。

Private Link 服務,以及其他與 Private Link 相容的 Azure 服務,可讓您 設定提供給租使用者的別名 。 藉由使用別名,您可以避免公開 Azure 訂用帳戶識別碼和資源組名。

服務可見度

Private Link 服務可讓您 控制私人端點 的可見度。 如果所有 Azure 客戶知道其別名或資源識別碼,您可能會允許所有 Azure 客戶連線到您的服務。 或者,您可以限制只存取一組已知的 Azure 客戶。

您也可以指定可連線到私人端點的有限預先核准 Azure 訂用帳戶識別碼。 如果您選擇使用此方法,請考慮如何收集和授權訂用帳戶識別碼。 例如,您可能會在應用程式中提供系統管理使用者介面,以收集租使用者的訂用帳戶識別碼。 然後,您可以動態地重新設定 Private Link 服務實例,以預先核准連線的訂用帳戶識別碼。

連線核准

在用戶端(例如租使用者)與私人端點之間要求連線之後,Private Link 會要求核准 連線 。 在核准連線之前,流量無法流經私人端點連線。

Private Link 服務支援數種類型的核准流程,包括:

  • 手動核准 ,您的小組會明確核准每個連線。 當您只有少數租使用者透過 Private Link 使用您的服務時,這種方法是可行的。
  • 以 API 為基礎的核准 ,其中 Private Link 服務會將連線視為需要手動核准,而您的應用程式會使用 更新私人端點連線ion API 、Azure CLI 或 Azure PowerShell 來核准連線。 當您有已獲授權使用私人端點的租使用者清單時,此方法很有用。
  • 自動核准 ,其中 Private Link 服務本身會維護應自動核准其連線的訂用帳戶識別碼清單。

如需詳細資訊,請參閱 控制服務存取

Proxy 通訊協定 v2

當您使用 Private Link 服務時,根據預設,您的應用程式只能看到已透過網路位址轉譯 (NAT) 的 IP 位址。 此行為表示流量似乎會從您自己的虛擬網路內流動。

Private Link 可讓您存取租使用者虛擬網路中的原始用戶端 IP 位址。 此功能使用 TCP Proxy 通訊協定 v2

例如,假設租使用者的系統管理員需要新增 IP 位址型存取限制,例如 主機 10.0.0.10 可以存取服務,但主機 10.0.0.20 無法 存取。 當您使用 Proxy 通訊協定 v2 時,您可以讓租使用者在您的應用程式中設定這些類型的存取限制。 不過,您的應用程式程式碼必須檢查用戶端的原始 IP 位址,並強制執行限制。

  • 來自提供者 (SaaS ISV) 和取用者觀點 的 Azure Private Link 服務說明和示範:查看 Azure Private Link 服務功能的影片,可啟用多租使用者服務提供者(例如建置 SaaS 產品的獨立軟體廠商)。 此解決方案可讓取用者使用取用者自有 Azure 虛擬網路的私人 IP 位址來存取提供者的服務。
  • 搭配 Azure Private Link 服務的 TCP Proxy 通訊協定 v2 — 深入探討 :呈現 TCP Proxy 通訊協定 v2 的影片,這是 Azure Private Link 服務的進階功能。 在多租使用者和 SaaS 案例中很有用。 影片示範如何在 Azure Private Link 服務中啟用 Proxy 通訊協定 v2。 它也會示範如何設定 NGINX 服務,以讀取原始用戶端的來源私人 IP 位址,而不是 NAT IP,以透過私人端點存取服務。
  • 使用 NGINX Plus 從 Azure Private Link 服務 解碼 Proxy 通訊協定 TLV:影片會查看如何使用 NGINX Plus 從 Azure Private Link 服務取得 TCP Proxy 通訊協定 v2 TLV linkIdentifier 。 影片示範如何擷取和解碼私人端點連線的數值 linkIdentifier ,也稱為 LINKID 。 此解決方案適用于需要識別建立連線之特定取用者租使用者的多租使用者提供者。
  • SaaS 私人連線性模式 :範例解決方案說明使用 Azure 受控應用程式自動核准私人端點連線的方法。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他參與者:

若要查看非公用LinkedIn設定檔,請登入 LinkedIn。

下一步

檢閱 多租使用者 的網路方法。