私人 應用程式閘道 部署 (預覽)

簡介

從歷史上看,應用程式閘道 v2 SKU,以及特定程度的 v1,都需要公用IP位址,才能啟用服務的管理。 這項需求在網路安全組和路由表中使用精細控制時,已施加數個限制。 具體來說,已經觀察到下列挑戰:

  1. 所有 應用程式閘道 v2 部署都必須包含公用前端IP組態,以啟用與閘道管理員服務標籤的通訊。
  2. 網路安全組關聯需要規則,才能允許來自 GatewayManager 的輸入存取和因特網的輸出存取。
  3. 當引入預設路由時,將流量轉送因特網、計量、監視和更新以外的任何位置,都會導致失敗狀態。

應用程式閘道 v2 現在可以處理這些專案,進一步消除數據外泄的風險,以及控制虛擬網路內通訊隱私權的風險。 這些變更包括下列功能:

  1. 僅限私人IP位址前端IP組態
    • 不需要公用IP位址資源
  2. 透過網路安全組從 GatewayManager 服務標籤刪除輸入流量
  3. 能夠定義 拒絕所有 輸出網路安全組 (NSG) 規則來限制因特網的輸出流量
  4. 能夠覆寫通往因特網的預設路由 (0.0.0.0/0)
  5. 透過虛擬網路 上已定義的解析程序進行 DNS 解析深入瞭解,包括私人連結私人 DNS 區域。

每個功能都可以獨立設定。 例如,公用IP位址可用來允許來自因特網的流量輸入,而且您可以在網路安全組設定中定義 拒絕所有 輸出規則,以防止數據外流。

上線至公開預覽

私人IP前端設定、NSG 規則控制以及路由表控制的新控件功能目前為公開預覽狀態。 若要加入公開預覽版,您可以選擇使用 Azure 入口網站、PowerShell、CLI 或 REST API 來加入體驗。

當您加入預覽版時,所有新的 應用程式閘道 布建都能夠定義NSG、路由表或私人IP組態功能的任何組合。 如果您想要退出新功能,並返回目前正式運作的 應用程式閘道 功能,您可以從預覽取消註冊來執行此動作。

如需預覽功能的詳細資訊,請參閱 在 Azure 訂用帳戶中設定預覽功能

註冊預覽版

使用下列步驟,透過 Azure 入口網站 註冊增強型 應用程式閘道 網路控件的公開預覽版:

  1. 登入 Azure 入口網站

  2. 在搜尋方塊中,輸入 [訂閱] 並選取 [訂用帳戶]

    Azure portal search.

  3. 選取訂用帳戶名稱的連結。

    Select Azure subscription.

  4. 在左側功能表的 [設定] 下,選取 [預覽功能]

    Azure preview features menu.

  5. 您會看到可用的預覽功能清單和您目前的註冊狀態。

    Azure portal list of preview features.

  6. [預覽功能 ] 輸入至篩選方塊 EnableApplicationGatewayNetworkIsolation,檢查該功能,然後按兩下 [ 註冊]。

    Azure portal filter preview features.

注意

功能註冊最多可能需要 30 分鐘的時間,才能從 [註冊] 轉換為 [已註冊] 狀態。

如需預覽功能的詳細資訊,請參閱 在 Azure 訂用帳戶中設定預覽功能

從預覽取消註冊

若要透過入口網站退出退出增強 應用程式閘道 網路控件的公開預覽,請使用下列步驟:

  1. 登入 Azure 入口網站

  2. 在搜尋方塊中,輸入 [訂閱] 並選取 [訂用帳戶]

    Azure portal search.

  3. 選取訂用帳戶名稱的連結。

    Select Azure subscription.

  4. 在左側功能表的 [設定] 下,選取 [預覽功能]

    Azure preview features menu.

  5. 您會看到可用的預覽功能清單和您目前的註冊狀態。

    Azure portal list of preview features.

  6. [預覽功能] 輸入到 [EnableApplicationGatewayNetworkIsolation] 篩選方塊中,檢查該功能,然後按兩下 [取消註冊]。

    Azure portal filter preview features.

區域和可用性

私人 應用程式閘道 預覽可供支援 應用程式閘道 v2 sku 的所有公用雲端區域使用。

網路控件的設定

註冊至公開預覽版之後,可以使用任何方法來執行 NSG、路由表和私人 IP 位址前端設定的設定。 例如:REST API、ARM 範本、Bicep 部署、Terraform、PowerShell、CLI 或入口網站。 此公開預覽版不會引進 API 或命令變更。

資源變更

布建網關之後,系統會自動將資源標籤指派為 EnhancedNetworkControl 的名稱,且值為 True。 請參閱下列範例:

View the EnhancedNetworkControl tag

資源標籤是整容的,並用來確認閘道已布建功能,以設定唯一私人閘道功能的任何組合。 修改或刪除標籤或值並不會變更閘道的任何功能運作。

提示

在啟用功能之前,在訂用帳戶中部署現有 應用程式閘道 時,EnhancedNetworkControl 標籤會很有説明,而且您想要區分哪些閘道可以利用新功能。

應用程式閘道 子網

應用程式閘道 子網是部署 應用程式閘道 資源所在 虛擬網絡 內的子網。 在前端私人Ip組態中,此子網必須能夠私下連線到您公開的應用程式或網站的資源。

輸出因特網連線能力

應用程式閘道 只包含私人前端IP組態(沒有公用IP前端設定)的部署無法輸出目的地為因特網的流量。 此設定會影響透過因特網公開存取的後端目標通訊。

若要啟用從 應用程式閘道 到因特網對向後端目標的輸出連線,您可以使用 虛擬網絡 NAT 或將流量轉送至可存取因特網的虛擬設備。

虛擬網絡 NAT 可控制應使用哪些 IP 位址或前置詞,以及可設定的閒置逾時。 若要設定,請使用公用IP位址或公用前置詞建立新的NAT閘道,並將它與包含 應用程式閘道的子網產生關聯。

如果因特網輸出需要虛擬設備,請參閱本檔中的 路由表控件 一節。

需要公用IP使用量的常見案例:

  • 不使用私人端點或服務端點與金鑰保存庫的通訊
    • 上傳至 應用程式閘道 的 pfx 檔案不需要輸出通訊
  • 透過因特網與後端目標的通訊
  • 與因特網對向CRL或 OCSP端點的通訊

網路安全組控制

與 應用程式閘道 子網相關聯的網路安全組不再需要 GatewayManager 的輸入規則,而且不需要因特網的輸出存取。 唯一必要的規則是 允許來自 AzureLoadBalancer 的輸入,以確保健康情況探查可以到達閘道。

下列組態是一組限制最嚴格的輸入規則範例,拒絕 Azure 健康情況探查的所有流量。 除了已定義的規則之外,也會定義明確的規則,以允許用戶端流量到達閘道的接聽程式。

View the inbound security group rules

注意

應用程式閘道 會顯示警示,要求確保如果 DenyAll 規則無意中限制健康情況探查的存取,則會指定 Allow LoadBalanceRule

範例案例

此範例會逐步解說使用 Azure 入口網站 搭配下列規則建立 NSG:

  • 允許從來自因特網的用戶端要求 應用程式閘道 埠 80 和 8080 的輸入流量
  • 拒絕所有其他輸入流量
  • 允許輸出流量流向另一個虛擬網路中的後端目標
  • 允許可存取因特網的後端目標輸出流量
  • 拒絕所有其他輸出流量

首先, 建立網路安全組。 此安全組包含您的輸入和輸出規則。

輸入規則

安全組中已布建三個輸入 默認規則 。 請參閱下列範例:

View default security group rules

接下來,建立下列四個新的輸入安全性規則:

  • 允許來自因特網的輸入埠 80 tcp(任何)
  • 允許來自因特網的輸入埠 8080 tcp(任何)
  • 允許來自 AzureLoadBalancer 的輸入
  • 拒絕任何輸入

若要建立這些規則:

  • 選取輸入 安全性規則
  • 選取新增
  • 在 [新增輸入安全性規則] 窗格中,輸入每個規則的下列資訊。
  • 輸入資訊后,請選取 [新增 ] 以建立規則。
  • 建立每個規則需要一些時間。
規則# 來源 來源服務標籤 來源連接埠範圍 目的地 服務 Dest 埠範圍 通訊協定 動作 優先順序 名稱
1 任意 * 任意 HTTP 80 TCP 允許 1028 AllowWeb
2 任意 * 任意 自訂 8080 TCP 允許 1029 AllowWeb8080
3 服務標籤 AzureLoadBalancer * 任意 自訂 * 任意 允許 1045 AllowLB
4 任意 * 任意 自訂 * 任意 拒絕 4095 DenyAllInbound

選取 [ 重新 整理] 以在布建完成時檢閱所有規則。

View example inbound security group rules

輸出規則

已布建優先順序為 65000、65001 和 65500 的三個預設輸出規則。

建立下列三個新的輸出安全性規則:

  • 允許從 10.10.4.0/24 到後端目標 20.62.8.49 的 TCP 443
  • 允許從來源 10.10.4.0/24 到目的地 10.13.0.4 的 TCP 80
  • DenyAll 流量規則

這些規則分別指派優先順序為 400、401 和 4096。

注意

  • 10.10.4.0/24 是子網位址空間 應用程式閘道。
  • 10.13.0.4 是對等互連 VNet 中的虛擬機。
  • 20.63.8.49 是後端目標 VM。

若要建立這些規則:

  • 選取 輸出安全性規則
  • 選取新增
  • 在 [新增輸出安全性規則] 窗格中,輸入每個規則的下列資訊。
  • 輸入資訊后,請選取 [新增 ] 以建立規則。
  • 建立每個規則需要一些時間。
規則# 來源 來源 IP 位址/CIDR 範圍 來源連接埠範圍 目的地 目的地 IP 位址/CIDR 範圍 服務 Dest 埠範圍 通訊協定 動作 優先順序 名稱
1 IP 位址 10.10.4.0/24 * IP 位址 20.63.8.49 HTTPS 443 TCP 允許 400 AllowToBackendTarget
2 IP 位址 10.10.4.0/24 * IP 位址 10.13.0.4 HTTP 80 TCP 允許 401 AllowToPeeredVnetVM
3 任意 * 任意 自訂 * 任意 拒絕 4096 DenyAll

選取 [ 重新 整理] 以在布建完成時檢閱所有規則。

View example outbound security group rules

將 NSG 與子網產生關聯

最後一個步驟是將網路安全組與包含您 應用程式閘道 的子網產生關聯。

Associate NSG to subnet

結果:

View the NSG overview

重要

當您定義 DenyAll 規則時請小心,因為您可能會不小心拒絕來自您想要允許存取之客戶端的輸入流量。 您也可能不小心拒絕對後端目標的輸出流量,導致後端健康情況失敗併產生 5XX 回應。

路由表控件

在目前的 應用程式閘道 供應專案中,路由表與定義為0.0.0.0.0.0/0的規則關聯,因為不支援虛擬設備,以確保適當管理 應用程式閘道。

註冊公開預覽功能之後,現在可以透過定義 0.0.0.0/0 且下一個躍點移至虛擬設備的路由表規則,將流量轉送至虛擬設備。

透過 BGP 廣告強制通道或學習 0.0.0.0/0 路由不會影響 應用程式閘道 健康情況,並接受流量流量。 使用 VPN、ExpressRoute、路由伺服器或虛擬 WAN 時,適用此案例。

範例案例

在下列範例中,我們會建立路由表,並將它與 應用程式閘道 子網產生關聯,以確保來自子網的輸出因特網存取將會從虛擬設備輸出。 概括而言,圖 1 摘要說明下列設計:

  • 應用程式閘道 位於輪輻虛擬網路中
  • 中樞網路中有網路虛擬裝置 (虛擬機)
  • 具有預設路由 (0.0.0.0.0/0) 到虛擬設備的路由表會與 應用程式閘道 子網相關聯

Diagram for example route table

圖 1:透過虛擬設備進行因特網存取輸出

若要建立路由表,並將它與 應用程式閘道 子網產生關聯:

  1. 建立路由表

View the newly created route table

  1. 選取 [路由 ],然後建立 0.0.0.0/0 的下一個躍點規則,並將目的地設定為 VM 的 IP 位址:

View of adding default route to network virtual applicance

  1. 選取 [子網],並將路由表與 應用程式閘道 子網產生關聯:

View of associating the route to the AppGW subnet

  1. 驗證流量是否通過虛擬設備。

限制/已知問題

在公開預覽中,已知有下列限制。

私人連結組態支援透過私人端點將流量通道傳送至 應用程式閘道 不支援專用閘道。

僅限 AGIC 的私人 IP 前端設定

AGIC v1.7 必須用來僅引進私人前端IP的支援。

透過全域 VNet 對等互連的私人端點連線

如果 應用程式閘道 具有可透過全域 VNet 對等互連存取之 VNet 中私人端點的後端目標或密鑰保存庫參考,則會捨棄流量,導致狀況不良。

網路監看員整合

執行檢查和診斷測試時,連線 ion 疑難解答和 NSG 診斷會傳回錯誤。

在啟用增強的網路控制之前,並存 v2 應用程式閘道

如果子網共用 應用程式閘道 v2 部署,這些部署是在啟用增強的網路控制功能之前和之後建立的,網路安全組 (NSG) 和路由表功能僅限於先前的閘道部署。 在啟用新功能之前佈建的應用程式網關必須重新佈建,或新建立的網關必須使用不同的子網來啟用增強的網路安全組和路由表功能。

  • 如果在啟用子網中存在新功能之前部署的閘道,您可能會看到錯誤,例如:新增路由表專案時。 For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet'
  • 將網路安全組規則新增至子網時,您可能會看到: Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.

未知的後端健康狀態

如果後端健康情況為 未知,您可能會看到下列錯誤:

  • 無法擷取後端健康狀態。 如果有 v1 SKU,則應用程式閘道子網上的 NSG/UDR/Firewall 封鎖埠 65503-65534 上的流量,如果有 v2 SKU,則為埠 65200-65535,如果後端集區中設定的 FQDN 無法解析為 IP 位址,就會發生這種情況。 若要深入瞭解,請造訪 - https://aka.ms/UnknownBackendHealth

您可以忽略此錯誤,並在未來的版本中加以釐清。

下一步

  • 如需更多安全性最佳做法,請參閱 應用程式閘道 的 Azure 安全性基準。