使用 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 應用程式 (無論是否有容器化):基本、標準、PremiumV2、PremiumV3、IsolatedV2、Functions 進階 (有時稱為彈性進階方案)。
您可以使用 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 取得連線資訊。
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 功能和私人端點,請查看這篇文章取得有關限制的最新資訊。
下一步
- 若要透過入口網站部署應用程式的私人端點,請參閱如何使用 Azure 入口網站私下連線至應用程式
- 若要使用 Azure CLI 部署應用程式的私人端點,請參閱如何使用 Azure CLI 私下連線至應用程式
- 若要使用 PowerShell 部署應用程式的私人端點,請參閱如何使用 PowerShell 私下連線至應用程式
- 若要使用 Azure 範本部署應用程式的私人端點,請參閱如何使用 Azure 範本私下連線至應用程式
- 如需端對端範例,以及了解如何以 ARM 範本使用虛擬網路整合及私人端點,將前端應用程式連線到安全的後端應用程式,請參閱此份快速入門
- 如需端對端範例,以及了解如何以 Terraform 使用虛擬網路整合及私人端點,將前端應用程式連線到安全的後端應用程式,請參閱此範例