針對 App Service 應用程式使用私人端點
注意
從 2024 年 6 月 1 日起,新建立的 App Service 應用程式可以產生使用命名慣例 <app-name>-<random-hash>.<region>.azurewebsites.net
的唯一默認主機名。 現有的應用程式名稱保持不變。 例如:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
如需詳細資訊,請參閱 App Service 資源的唯一預設主機名。
重要
私人端點適用於 Windows 和 Linux 應用程式、容器化或未裝載在這些 App Service 方案上:基本、標準、PremiumV2、PremiumV3、IsolatedV2、Functions Premium(有時稱為彈性進階方案)。
您可以針對 App Service 應用程式使用私人端點。 私人端點可讓位於您專用網中的用戶端透過 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 | 192.0.2.13 |
當您部署私人端點時,方法會將 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 | 192.0.2.13 | <--此公用 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為基礎的TLS。
- 您使用私人端點設定的應用程式無法接收來自已啟用服務端點且無法使用服務端點型存取限制規則之
Microsoft.Web
子網的公用流量。 - 私人端點命名必須遵循為
Microsoft.Network/privateEndpoints
類型資源所定義的規則。 如需詳細資訊,請參閱 命名規則和限制。
如需有關限制的最新資訊,請參閱 限制。
相關內容
- 若要透過入口網站部署應用程式的私人端點,請參閱如何使用 Azure 入口網站 私下連線到應用程式。
- 若要使用 Azure CLI 為您的應用程式部署私人端點,請參閱 如何使用 Azure CLI 私下連線到應用程式。
- 若要使用PowerShell為您的應用程式部署私人端點,請參閱 如何使用PowerShell私下連線到應用程式。
- 若要使用 Azure 範本部署應用程式的私人端點,請參閱 如何使用 Azure 範本私下連線到應用程式。
- 若要查看如何使用虛擬網路整合和使用ARM範本的私人端點,將前端應用程式連線到安全後端應用程式的端對端範例,請參閱本 快速入門。
- 若要查看如何使用虛擬網路整合和具有 terraform 的私人端點,將前端應用程式連線到安全後端應用程式的端對端範例,請參閱此 範例。