Azure App Service 存取限制

App Service 中的存取限制相當於防火牆,可讓您封鎖和篩選流量。 存取限制僅適用於輸入存取。 大部分 App Service 定價層也能夠將私人端點新增至應用程式,這是應用程式的其他進入點。 存取限制不適用於透過私人端點所輸入的流量。 針對裝載於 App Service 的所有應用程式,預設進入點會公開提供。 唯一的例外狀況是裝載在 ILB App Service 環境中的應用程式,其中預設進入點位於虛擬網路內部。

運作方式

當流量到達 App Service 時,會先評估流量是來自私人端點或通過預設端點。 如果流量是透過私人端點傳送,則會直接傳送至網站,而不會有任何限制。 使用網路安全性群組來設定私人端點的限制。

如果您是透過預設端點 (通常是公用端點) 傳送流量,則流量會先在應用程式存取層級進行評估。 您可以在這裡啟用或停用存取。 如果您啟用應用程式存取,則會在網站存取層級評估流量。 對於任何應用程式,您都有主要網站和進階工具網站 (也稱為 scm 或 kudu 網站)。

您可以選擇為每個網站設定一組存取限制規則。 存取限制規則會依照優先順序進行評估。 如果某些規則具有相同優先順序,則在排序之前,會依照從 Azure Resource Manager API 和 Azure 入口網站傳回時所列出的順序進行評估。 如果沒有符合任何規則,您也可以指定行為。 下列各節會更詳細探討。

Diagram of access restrictions high-level flow.

應用程式存取

應用程式存取可讓您設定存取是否可以通過預設 (公用) 端點。 您可以將此行為設定為 DisabledEnabled。 啟用存取時,您可以新增網站存取限制規則,以控制來自選取虛擬網路和 IP 位址的存取。

如果未設定此設定 (屬性為 null),則預設行為是啟用存取,除非私人端點存在,這會將行為變更為停用存取。 在 Azure 入口網站中,當未設定屬性時,也不會設定選項按鈕,而您接著會使用預設行為。

Screenshot of app access option in Azure portal.

在 Azure Resource Manager API 中,控制應用程式存取的屬性稱為 publicNetworkAccess。 針對內部負載平衡器 (ILB) App Service 環境,應用程式的預設進入點一律是虛擬網路內部。 啟用應用程式存取 (publicNetworkAccess) 不會授與應用程式的直接公用存取;而是允許從預設進入點存取,其對應至 App Service 環境的內部 IP 位址。 如果您在 ILB App Service 環境上停用應用程式存取,您只能透過新增至個別應用程式的私人端點來存取應用程式。

網站存取

網站存取限制可讓您篩選輸入要求。 網站存取限制可讓您建置以優先順序評估的允許和拒絕規則清單。 這類似於 Azure 網路中的網路安全性群組 (NSG) 功能。

Screenshot of site access options in Azure portal.

網站存取限制有數種類型的規則可供您套用:

不相符的規則

沒有規則相符時,您可以設定行為 (預設動作)。 這是一個特殊規則,一律會顯示為規則集合的最後一個規則。 如果未設定此設定,則不相符的規則行為取決於已設定的規則。 如果沒有任何規則,則不相符的規則行為是允許所有存取,但如果有一或多個規則存在,則會隱含地變更為拒絕所有存取。 您可以明確地將此行為設定為允許或拒絕存取,而不論定義的規則為何。

IP 型存取限制規則

IP 型存取限制功能可協助您限制可用來連線至應用程式的 IP 位址。 可支援 IPv4 和 IPv6 兩者。 此功能的部分使用案例:

  • 限制從一組妥善定義的位址存取您的應用程式。
  • 限制存取來自外部負載平衡服務或其他具有已知輸出 IP 位址的網路設備流量。

若要瞭解如何啟用此功能,請參閱設定存取限制

注意

當您的應用程式位於 App Service 環境時,IP 型存取限制規則只會處理虛擬網路位址範圍。 如果您的應用程式位於多租用戶服務中,則必須使用服務端點來限制流量以選取虛擬網路中的子網路。

根據服務端點的存取限制規則

服務端點可讓您鎖定對應用程式的輸入存取,讓來源位址必須來自您選取的一組子網路。 這項功能可與 IP 存取限制搭配使用。 服務端點與遠端偵錯不相容。 如果您想要使用遠端偵錯搭配應用程式,則用戶端不能位於已啟用服務端點的子網路中。 設定服務端點的程序類似於設定 IP 存取限制的程序。 您可以建置允許/拒絕存取規則清單,其中包含虛擬網路中的公用位址和子網路。

注意

已設定私人端點的應用程式或使用 IP 型 SSL (應用程式指派的位址) 的應用程式,不支援以服務端點為基礎的存取限制規則。

若要深入了解如何使用您的應用程式設定服務端點,請參閱 Azure App Service 存取限制

任何服務端點來源

針對測試或在特定案例中,您可以允許來自任何已啟用服務端點子網路的流量。 您可以使用文字「AnyVnets」來定義以 IP 為基礎的規則,而不是使用 IP 範圍來執行此動作。 您無法在入口網站中建立這些規則,但是您可以修改現有以 IP 為基礎的規則,並以「AnyVnets」字串取代 IP 位址。

根據服務標籤的存取限制規則

Azure 服務標籤是 Azure 服務妥善定義的 IP 位址集。 服務標籤會將各種 Azure 服務中使用的 IP 範圍分組,且通常也會進一步限定於特定區域。 這種類型的規則可讓您篩選來自特定 Azure 服務的輸入流量。

如需標籤的完整清單和詳細資訊,請造訪服務標籤連結。

若要瞭解如何啟用此功能,請參閱設定存取限制

多來源規則

多來源規則可讓您在單一規則中合併多達 8 個 IP 範圍或 8 個服務標記。 如果您有超過 512 個 IP 範圍,您可以使用多來源規則。 如果您希望建立邏輯規則以結合多個 IP 範圍與單一 HTTP 標頭篩選器,也可以使用多來源規則。

多來源規則與單一來源規則的定義方式相同,但每個範圍皆以逗號分隔。

您無法在入口網站中建立這些規則,但是您可以修改現有的服務標籤或以 IP 為基礎的規則,並將更多來源新增至規則。

網站存取限制規則的 HTTP 標頭篩選

不論類型為何,您都可以針對任何規則新增 HTTP 標頭篩選。 HTTP 標頭篩選可讓您根據特定的 HTTP 標頭值進一步檢查傳入要求和篩選。 針對每個規則,每個標頭最多可以有八個值。 以下列出支援的 HTTP 標頭:

  • X-Forwarded-For標準標頭,用於識別透過 Proxy 伺服器連線的用戶端的原始 IP 位址。 接受有效的 IP 位址。
  • X-Forwarded-Host標準標頭,用來識別用戶端要求的原始主機。 接受長度上限為 64 個字元的任何字串。
  • X-Azure-FDID自訂標頭,用來識別反向 Proxy 執行個體。 Azure Front Door 會傳送可識別執行個體的 GUID,但是也可以用於非 Microsoft Proxy 以識別特定執行個體。 接受長度上限為 64 個字元的任何字串。
  • X-FD-HealthProbe自訂標頭,用來識別反向 Proxy 的健全狀態探查。 Azure Front Door 會傳送「1」來唯一識別健全狀態探查要求。 標頭也可以用於非 Microsoft Proxy 以識別健全狀態探查。 接受長度上限為 64 個字元的任何字串。

HTTP 標頭篩選的一些使用案例如下:

  • 限制從轉送主機名稱的 Proxy 伺服器存取流量
  • 使用服務標籤規則和 X-Azure-FDID 標頭限制來限制對特定 Azure Front Door 執行個體的存取

診斷記錄

App Service 可以將各種記錄類別傳送至 Azure 監視器。 其中一個類別稱為 IPSecurity Audit logs ,並代表存取限制中的活動。 符合規則的所有要求 (不相符的規則除外),不論是允許或拒絕,都會記錄並且可用來驗證存取限制的設定。 針對規則設定進行疑難排解時,記錄功能也是功能強大的工具。

進階使用案例

結合上述功能可讓您解決以下各節所述的一些特定使用案例。

封鎖單一 IP 位址

如果您想要拒絕/封鎖一或多個特定 IP 位址,您可以將 IP 位址新增為拒絕規則,並設定不相符的規則以允許所有不相符的流量。

限制進階工具網站的存取

進階工具網站也稱為 scm 或 kudu,具有您可以設定的個別規則集合。 您也可以為此網站設定不相符的規則。 設定可讓您使用為主要網站設定的規則。 您無法選擇性地允許存取特定進階工具網站功能。 例如,您無法選擇性地只允許存取進階工具網站中的 WebJobs 管理主控台。

透過私人端點部署

您可能有可公開存取的網站,但是您的部署系統是在虛擬網路中。 您可以藉由新增私人端點,將部署流量保持為私人。 接著,您必須確定已啟用公用應用程式存取。 最後,您必須將進階工具網站的不相符規則設定為拒絕,這會封鎖該端點的所有公用流量。

允許外部合作夥伴存取私人端點保護的網站

在此案例中,您會透過私人端點存取您的網站,並透過私人端點進行部署。 您可以暫時邀請外部合作夥伴測試網站。 您可以藉由啟用公用應用程式存取來執行此動作。 新增規則 (以 IP 為基礎) 以識別合作夥伴的用戶端。 設定不相符的規則動作,以拒絕主要和進階工具網站。

限制特定 Azure Front Door 執行個體的存取權

從 Azure Front Door 到應用程式的流量源自一組已知的 IP 範圍 (在 AzureFrontDoor.Backend 服務標籤中定義)。 使用服務標籤限制規則時可讓流量僅限來自 Azure Front Door。 為確保流量僅來自特定執行個體,您必須根據 Azure Front Door 傳送的唯一 HTTP 標頭 (稱為 X-Azure-FDID),進一步篩選收到的要求。 您可以在入口網站中找到 Front Door 識別碼。

下一步

注意

封鎖對網站公用存取的存取限制規則也可以封鎖記錄串流等服務。 如果您需要這些項目,您必須在限制中允許 App Service 的 IP 位址。