您可以針對 Azure App Service 應用程式使用私人端點。 私人端點可讓位於您專用網中的用戶端透過 Azure Private Link 安全地存取應用程式。 私人端點會使用 Azure 虛擬網路位址空間中的 IP 位址。 私人網路上用戶端與應用程式之間的網路流量會透過虛擬網路以及 Microsoft 骨幹網路上的「Private Link」進行傳輸。 此設定可消除公用因特網的暴露。
當您針對您的應用程式使用私人端點時,您可以:
- 當您設定私人端點並停用公用網路存取時,保護您的應用程式,這可消除公開曝光。
- 使用 VPN 或 ExpressRoute 私人對等互連,安全地從連線至虛擬網路的內部部署網路連線到應用程式。
- 避免從您的虛擬網路外流任何資料。
重要
私人端點適用於在下列 App Service 方案託管的 Windows 和 Linux Web 應用程式 (無論是否有容器化):基本、標準、PremiumV2、PremiumV3、IsolatedV2、Functions 進階 (有時稱為「彈性進階」方案)。
概念概觀
私人端點是虛擬網路中子網中App Service 應用程式的網路介面。
您建立應用程式的私人端點,就可在您私人網路的用戶端與應用程式之間提供安全連線。 私人端點會獲指派您虛擬網路 IP 位址範圍中的 IP 位址。 私人端點與應用程式間連線會使用安全的 Private Link。 私人端點僅用於您應用程式的連入流量。 傳出流量不會使用此私人端點。 您可以透過虛擬網路整合功能,將傳出流量插入不同子網路中的網路。
應用程式的每個插槽都會分別配置。 每個部署槽最多可以使用 100 個私有端點。 您無法在插槽之間共用私人端點。 位置的 subresource
名稱為 sites-<slot-name>
。
您用來插入私人端點的子網可以有其他資源。 您不需要專用的空白子網路。
您也可以在與應用程式不同的區域中部署私人端點。
附註
虛擬網路整合功能不能使用與私人端點相同的子網。
安全性考慮
私人端點和公用存取可以在應用程式上共存。 如需詳細資訊,請參閱 此存取限制概觀。
為了確保隔離,當您啟用應用程式的私人端點時,請務必停用公用網路存取。 您可以在其他虛擬網路和子網中啟用多個私人端點,包括其他區域中的虛擬網路。
您的應用程式的存取限制規則不會針對透過私人端點的流量進行評估。 您可以排除虛擬網路中的數據外泄風險。 移除目的地為標籤網際網路或 Azure 服務的所有網路安全性群組 (NSG) 規則。
您可以在應用程式的 Web HTTP 記錄中找到用戶端來源 IP。 這項功能是使用傳輸控制通訊協定 (TCP) Proxy 來實作,其會將用戶端 IP 屬性轉送至應用程式。 如需詳細資訊,請參閱 使用 TCP Proxy v2 取得連線資訊。
DNS(域名系統)
當您針對 App Service 應用程式使用私人端點時,要求的 URL 必須符合您應用程式的位址。 根據預設,若沒有私人端點,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 來註冊應用程式資料列。 使用 Azure 私人 DNS 區域群組時,DNS 記錄會自動新增至私人 DNS 區域。
例如名稱解析會是:
名稱 | 類型 | 價值 | 備註 |
---|---|---|---|
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 區域中,您必須更新 DNS 記錄以指向私人端點。 如果您的應用程式已針對預設主機名使用 DNS 解析進行設定,則慣用的方式是為指向CNAME
的自定義網域新增mywebapp.azurewebsites.net
記錄。 如果您只想讓自訂網域名稱解析到私人端點,您可以直接新增具有私人端點 IP 的 A
記錄。
Kudu/scm 端點
針對 Kudu 控制台或 Kudu REST API(例如,若要使用 Azure DevOps Services 自我裝載代理程式進行部署),您必須建立指向 Azure DNS 私人區域或自定義 DNS 伺服器中私人端點 IP 的第二筆記錄。 第一個是針對您的應用程式,第二個適用於您應用程式的 SCM(原始檔控制管理)。 使用 Azure 私人 DNS 區域群組時,會自動新增 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 價格。
限制
- 當您在彈性進階方案中搭配私人端點使用 Azure 函式時,您必須有直接的網路存取權,才能在 Azure 入口網站中執行函式。 否則,您會收到 HTTP 403 錯誤。 您的瀏覽器必須能夠連線到私人端點,才能從 Azure 入口網站 執行函式。
- 您最多可以將 100 個私人端點連線到特定應用程式。
- 無法透過私人端點使用遠端偵錯功能。 我們建議您將程式碼部署至一個位置中,並在其中進行遠端偵錯。
- FTP 存取會透過輸入公用 IP 位址來提供。 私人端點不支援對應用程式的 FTP 存取。
- 私人端點不支援以IP為基礎的TLS。
- 使用私人端點設定的應用程式無法接收來自已啟用服務端點的子網的公用流量,並且無法使用基於服務端點的存取限制規則。
- 私人端點命名必須遵循針對類型資源
Microsoft.Network/privateEndpoints
所定義的規則。 如需詳細資訊,請參閱 命名規則和限制。
如需限制的最新資訊,請參閱此文件。