使用 App Service 應用程式的私人端點

重要

私人端點適用於 Windows 和 Linux 應用程式、容器化或未裝載在這些 App Service 方案上:基本、標準、進階版 V2、進階版 V3IsolatedV2Functions 進階版(有時稱為彈性 進階版 方案)。

您可以使用App Service 應用程式的私人端點,允許位於專用網中的用戶端透過 Azure Private Link 安全地存取應用程式。 私人端點會使用來自 Azure 虛擬網路位址空間的 IP 位址。 您專用網用戶端與應用程式之間的網路流量會透過虛擬網路周遊,以及 Microsoft 骨幹網路上的 Private Link,從而消除來自公用因特網的曝光。

針對您的應用程式使用私人端點可讓您:

  • 設定私人端點並停用公用網路存取,以消除公開暴露,以保護您的應用程式。
  • 使用 VPN 或 ExpressRoute 私人對等互連,從聯機到虛擬網路的內部部署網路安全地連線到您的應用程式。
  • 請避免從虛擬網路外洩任何數據。

概念式概觀

私人端點是虛擬網路中子網中 App Service 應用程式的特殊網路介面 (NIC)。 當您為應用程式建立私人端點時,它會在專用網和應用程式上的客戶端之間提供安全的連線。 私人端點會從虛擬網路的IP位址範圍指派IP位址。 私人端點與應用程式之間的聯機會使用安全的 Private Link。 私人端點僅用於您應用程式的連入流量。 連出流量不會使用此私人端點。 您可以透過 虛擬網路整合功能,將傳出流量插入至不同子網中的網路。

應用程式的每個位置都會個別設定。 每個位置最多可以插入 100 個私人端點。 您無法在位置之間共用私人端點。 位置的子資源名稱為 sites-<slot-name>

您插入私人端點的子網可以有其他資源,您不需要專用的空白子網。 您也可以在與應用程式不同的區域中部署私人端點。

注意

虛擬網路整合功能無法使用與私人端點相同的子網,這是虛擬網路整合功能的限制。

從安全性的觀點來看:

  • 私人端點和公用存取可以共存於應用程式上。 如需詳細資訊,請參閱 存取限制概觀
  • 當您啟用應用程式的私人端點時,請確定已停用公用網路存取,以確保隔離。
  • 您可以在其他虛擬網路和子網中啟用多個私人端點,包括其他區域中的虛擬網路。
  • 您的應用程式的存取限制規則不會針對透過私人端點的流量進行評估。
  • 您可以移除目的地為因特網或 Azure 服務的所有 NSG 規則,藉此消除虛擬網路的數據外泄風險。

在應用程式的 Web HTTP 記錄中,您會找到用戶端來源 IP。 這項功能是使用 TCP Proxy 通訊協定來實作,將用戶端 IP 屬性轉送至應用程式。 如需詳細資訊,請參閱 使用 TCP Proxy v2 取得連線資訊。

App Service 應用程式私人端點全域概觀

DNS

當您針對 App Service 應用程式使用私人端點時,要求的 URL 必須符合您的應用程式名稱。 根據預設,mywebappname.azurewebsites.net。

根據預設,若沒有私人端點,Web 應用程式的公用名稱是叢集的正式名稱。 例如,名稱解析為:

名稱 類型
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154

當您部署私人端點時,我們會更新 DNS 進入,以指向標準名稱 mywebapp.privatelink.azurewebsites.net。 例如,名稱解析為:

名稱 類型 備註
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154 <--此公用IP不是您的私人端點,您會收到403錯誤

您必須設定私人 DNS 伺服器或 Azure DNS 私人區域。 針對測試,您可以修改測試計算機的主機專案。 您需要建立的 DNS 區域為: privatelink.azurewebsites.net。 使用 A 記錄和私人端點 IP 註冊應用程式的記錄。 例如,名稱解析為:

名稱 類型 備註
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure 會在 Azure 公用 DNS 中建立此 CNAME 專案,以將應用程式位址指向私人端點位址
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <--您在 DNS 系統中管理此專案,以指向您的私人端點 IP 位址

在此 DNS 設定之後,您可以使用預設名稱 mywebappname.azurewebsites.net 私下連線應用程式。 您必須使用此名稱,因為預設憑證是針對 *.azurewebsites.net 發行。

如果您需要使用自定義 DNS 名稱,您必須在應用程式中新增自定義名稱,而且您必須使用公用 DNS 解析來驗證自定義名稱,就像任何自定義名稱一樣。 如需詳細資訊,請參閱 自定義 DNS 驗證

針對 Kudu 控制台或 Kudu REST API(例如,使用 Azure DevOps 自我裝載代理程式進行部署),您必須在 Azure DNS 私人區域或自定義 DNS 伺服器中建立指向私人端點 IP 的兩筆記錄。 第一個是針對您的應用程式,第二個是應用程式的 SCM。

名稱 類型
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

App Service 環境 v3 特殊考慮

若要為在IsolatedV2方案中裝載的應用程式啟用私人端點(App Service 環境 v3),您必須在 App Service 環境 層級啟用私人端點支援。 您可以透過 [App Service 環境 組態] 窗格中的 Azure 入口網站,或透過下列 CLI 來啟用此功能:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

特定需求

如果虛擬網路與應用程式位於不同的訂用帳戶中,您必須確定已向資源提供者註冊具有虛擬網路的 Microsoft.Web 訂用帳戶。 您可以遵循此文件明確註冊提供者,但當您在訂用帳戶中建立第一個 Web 應用程式時,也會自動註冊提供者。

定價

如需價格詳細資料,請參閱 Azure Private Link 價格

限制

  • 當您在 Elastic 進階版 方案中搭配私人端點使用 Azure Function 時,若要在 Azure 入口網站 中執行或執行函式,您必須具有直接網路存取權,或收到 HTTP 403 錯誤。 換句話說,您的瀏覽器必須能夠連線到私人端點,才能從 Azure 入口網站 執行函式。
  • 您可以將最多 100 個私人端點連線到特定應用程式。
  • 無法透過私人端點使用遠端偵錯功能。 建議將程式代碼部署至位置,並在該處進行遠端偵錯。
  • FTP 存取是透過輸入公用IP位址提供。 私人端點不支援對應用程式的 FTP 存取。
  • 私人端點不支援以IP為基礎的SSL。
  • 您使用私人端點設定的應用程式無法接收來自已啟用服務端點之子網的 Microsoft.Web 公用流量,也無法使用 以服務端點為基礎的存取限制規則
  • 私人端點命名必須遵循針對 類型 Microsoft.Network/privateEndpoints資源所定義的規則。 您可以在這裡找到命名規則。

我們正在定期改善 Azure Private Link 功能和私人端點,請查看 本文 以取得有關限制的最新資訊。

下一步