共用方式為


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

注意

從 2024 年 6 月 1 日起,所有新建立的 App Service 應用程式都可以選擇使用命名慣例 <app-name>-<random-hash>.<region>.azurewebsites.net 來產生唯一的預設主機名稱。 現有的應用程式名稱將保持不變。

範例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

如需詳細資料,請參閱 App Service 資源的唯一預設主機名稱

重要

私人端點適用於在下列 App Service 方案託管的 Windows 和 Linux Web 應用程式 (無論是否有容器化):基本標準PremiumV2PremiumV3IsolatedV2Functions 進階 (有時稱為彈性進階方案)。

您可以使用 Azure Web 應用程式的私人端點,讓位於您私人網路的用戶端透過 Azure Private Link 安全地存取應用程式。 私人端點會使用 Azure 虛擬網路位址空間中的 IP 位址。 私人網路上的用戶端與應用程式之間的網路流量,會流經虛擬網路和 Microsoft 骨幹網路上的 Private Link,以排除由公開網際網路暴露的風險。

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

  • 設定私人端點及停用公用網路以保護您的應用程式,排除公開暴露的風險。
  • 使用 VPN 或 ExpressRoute 私人對等互連,安全地從連線至虛擬網路的內部部署網路連線到應用程式。
  • 避免從您的虛擬網路外流任何資料。

概念概觀

私人端點是特殊網路介面 (NIC),適用於您虛擬網路子網路之中的 Azure App Service 應用程式。 您建立應用程式的私人端點,就可在您私人網路的用戶端與應用程式之間提供安全連線。 私人端點會獲指派您虛擬網路 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 必須符合您的應用程式名稱。 預設 <app-name>.azurewebsites.net。 當您使用唯一的預設主機名稱稱時,應用程式名稱的格式為 <app-name>-<random-hash>.<region>.azurewebsites.net。 在下列範例中,mywebapp 也可以代表完整的區域化唯一主機名稱。

根據預設,如果沒有私人端點,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 設定之後,您可以使用預設名稱 mywebapp.azurewebsites.net 私下連線至您的應用程式。 您必須使用此名稱,因為預設憑證的發行對象是 *.azurewebsites.net。

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

若為 Kudu 主控台或 Kudu REST API (例如,使用 Azure DevOps Services 自我裝載式代理程式進行部署),則必須建立兩個記錄並指向 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 環境層級啟用私人端點支援。 您可以透過 Azure 入口網站中的 App Service 環境設定窗格,或透過下列 CLI 來啟動此功能:

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

特定需求

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

定價

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

限制

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

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

下一步