當您設定存取限制時,可以定義優先順序排序的允許/拒絕清單,以控制應用程式的網路存取。 此清單可包含 IP 位址或 Azure 虛擬網路子網路。 有一或多個項目時,清單結尾便會隱含一項全部拒絕規則。 如需詳細資訊,請參閱 Azure App 服務 存取限制。
存取限制功能適用於裝載 Azure App Service 的所有工作負載。 工作負載可以包含 Web 應用程式、API 應用程式、Linux 應用程式、Linux 自定義容器和 Azure Functions 應用程式。
當有人向您的應用程式提出要求時,會根據存取限制清單中的規則評估該 FROM
位址。 如果 FROM
位址是在已設定有服務端點的 Microsoft.Web
子網中,則會將來源子網與您存取限制清單中的虛擬網路規則進行比較。 若根據清單規則不允許該位址進行存取,該服務則會回覆 HTTP 403 狀態碼。
存取限制功能在 App Service 前端角色中實作,這類角色為背景工作角色主機 (程式碼執行位置) 的上游。 因此,存取限制實際上是網路訪問控制清單。
從 Azure 虛擬網路限制存取您的 Web 應用程式的能力是透過使用服務端點實現的。 透過服務端點,您可限制所選子網路對多租用戶服務的存取權。 這不適用於將流量限制為 App Service 環境所裝載的應用程式。 若使用 App Service 環境,則可套用 IP 位址規則,以控制您的應用程式存取權。
附註
服務端點必須在網路端及其啟用時搭配的 Azure 服務上同時啟用。 如需支援服務端點的 Azure 服務清單,請參閱虛擬網路服務端點。
在入口網站中管理存取限制規則
若要將存取限制規則新增至您的應用程式:
登入 Azure 入口網站。
選取您要新增存取限制的應用程式。
在左側功能表上,選取 [設定>網络]。
在 [ 網络] 窗格的 [ 輸入流量設定] 底下,選取 [公用網络存取 ] 設定。
在 [ 存取限制 ] 窗格上,檢閱為您的應用程式定義的存取限制規則清單。
此清單會顯示目前套用至應用程式的限制。 如果您的應用程式有虛擬網路限制,數據表會顯示是否已啟用
Microsoft.Web
的服務端點。 如果您的應用程式上未定義任何限制,且不相符的規則未設定為 [拒絕],則應用程式可從任何地方存取。
權限
您必須具有子網或更高層級的下列角色型訪問控制許可權,才能透過 Azure 入口網站、CLI 或直接設定 site config
屬性時設定存取限制:
動作 | 描述 |
---|---|
Microsoft.Web/sites/config/read |
取得 Web 應用程式組態設定。 |
Microsoft.Web/sites/config/write |
更新 Web 應用程式的組態設定。 |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action * |
將資源 (例如,儲存體帳戶或 SQL Database) 加入至子網路。 |
Microsoft.Web/sites/write ** |
更新 Web 應用程式設定。 |
*只有在新增虛擬網路 (服務端點) 規則時才需要
**只有在您透過 Azure 入口網站更新存取限制時才需要
如果您新增服務端點型規則,且虛擬網路位於與應用程式不同的訂用帳戶中,請確定已向資源提供者註冊具有虛擬網路的 Microsoft.Web
訂用帳戶。 您可以明確註冊提供者,但當您在訂用帳戶中建立第一個 Web 應用程式時,也會自動註冊它。 如需更多資訊,請參閱註冊資源業者。
新增存取限制規則
若要將存取限制規則新增至您的應用程式,請在 [ 存取限制 ] 窗格上,選取 [ 新增]。 只有在您儲存規則之後,規則才會生效。
規則會依優先順序強制執行,從 優先順序 資料行中的最低數值開始。 如果您未設定不相符的規則,當您新增一個規則時,隱含的 拒絕所有 將會生效。
建立規則時,請在 [新增存取限制] 窗格上執行下列動作:
- 在 [動作] 下,選取 [允許] 或 [拒絕]。
- 輸入規則的名稱和描述(選擇性)。
- 在 [優先順序] 方塊中輸入優先順序值。
- 在 [ 類型 ] 下拉式清單中,選取規則的類型。 下列各節將描述不同類型的規則。
- 輸入規則專屬的輸入。 選取 [新增規則 ] 以將規則新增至清單。
- 在 [存取限制] 窗格上選取 [儲存]。
附註
限制為512個存取限制規則。 如果您需要超過512個存取限制規則,建議您考慮獨立安全性產品。 請考慮使用 Azure Front Door、Azure 應用程式閘道或不同的 Web 應用程式防火牆 (WAF)。
設定以 IP 位址為基礎的規則
依上一節所述程序進行,加上下列動作:
- 針對步驟 4,在 [ 類型 ] 下拉式清單中,選取 [IPv4] 或 [IPv6]。
在 IPv4 和 IPv6 位址的無類別 Inter-Domain 路由 (CIDR) 表示法中指定 IP 位址區塊 。 若要指定位址,您可以使用 類似 的內容 1.2.3.4/32
,其中前四個八位代表您的IP位址,而 /32
是遮罩。 所有位址的 IPv4 CIDR 表示法為 0.0.0.0/0
。
附註
當您的應用程式位於 App Service 環境時,IP 型存取限制規則只會處理虛擬網路位址範圍。 如果您的應用程式位於多租用戶服務中,您必須使用服務端點來限制流量,以選取虛擬網路中的子網。
設定以服務端點為基礎的規則
針對步驟 4,在 [類型] 下拉式清單中,選取 [虛擬網絡]。
指定 [ 訂用帳戶]、 [虛擬網络] 和 [ 子網 ] 下拉式清單,符合您想要限制存取的專案。
您可使用服務端點來限制所選 Azure 虛擬網路子網路的存取。 如果尚未針對您所選取的子網路以 Microsoft.Web
來啟用服務終端點,則它們會自動啟用 (除非您選取了 [忽略缺少的 Microsoft.Web 服務端點])。 若想在應用程式上啟用服務端點,但不在子網路上啟用,取決於您是否有在子網路上啟用這些端點的權限。
如果您需要其他人在子網上啟用服務端點,請選取 [忽略遺漏Microsoft.Web 服務端點]。 您的應用程式已針對服務端點進行設定。 稍後可以在子網上啟用它們。
您無法使用服務端點來限制存取在 App Service 環境中執行的應用程式。 當應用程式位於 App Service 環境時,您可套用 IP 存取規則來控制存取權。
透過服務端點,您可以使用應用程式閘道或其他 Web 應用程式防火牆 (WAF) 裝置來設定應用程式。 您也可設定具有安全後端的多層式應用程式。 如需詳細資訊,請參閱 App Service 網路功能和應用程式閘道 整合。
附註
使用IP型TLS/SSL系結搭配虛擬IP的Web應用程式不支援服務端點。
設定以服務標記為基礎的規則
針對步驟 4,在 [ 類型 ] 下拉式清單中,選取 [服務卷標]。
存取限制規則支援所有公開可用的服務標籤。 每個服務標籤皆代表一份 Azure 服務 IP 範圍清單。 您可以在服務標記文件中找到這些服務和特定範圍連結的清單。 使用 Azure Resource Manager 範本或指令碼來設定進階規則,如區域範圍規則。
附註
當您透過 Azure 入口網站或 Azure CLI 建立服務標籤規則時,您需要訂用帳戶層級的讀取許可權,以取得選取/驗證服務卷標的完整清單。 此外, Microsoft.Network
資源提供者必須在訂用帳戶上註冊。
編輯規則
若要編輯現有的存取限制規則,請移至 [ 存取限制 ] 窗格,然後選取您要編輯的規則。
在 [編輯存取限制] 窗格中進行變更,接著選取 [更新規則]。
選取儲存以儲存變更。
附註
編輯規則時無法切換規則類型。
刪除規則
若要刪除規則,請在 [ 存取限制 ] 窗格上,選取您要刪除的規則或規則,然後選取 [ 刪除]。
選取儲存以儲存變更。
存取限制進階案例
下列各節說明在進階案例中使用存取限制。
依 HTTP 標頭篩選
您可以將 HTTP 標頭篩選新增至任何規則。 支援下列 HTTP 標頭名稱:
X-Forwarded-For
X-Forwarded-Host
X-Azure-FDID
X-FD-HealthProbe
針對每個標頭名稱,您最多可以新增八個以逗號分隔的值。 HTTP 標頭篩選條件會在規則本身之後進行評估,而且兩個條件都必須為 true,才能套用規則。
多來源規則
多來源規則可讓您在單一規則中結合最多八個IP範圍或八個服務標籤。 如果您有超過 512 個 IP 範圍,或想要建立邏輯規則,請使用多來源規則。 例如:邏輯規則可以包含多個 IP 範圍,並結合單一 HTTP 標頭篩選。
多重來源規則的定義方式與單一來源規則相同,但每個範圍都會以逗號分隔。
PowerShell 範例:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
封鎖單一 IP 位址
如果您想要明確封鎖單一IP位址或IP位址區塊,但允許存取其他所有位址,您可以新增特定IP位址的 拒絕 規則。 然後將不相符的規則動作設定為 [允許]。
限制 SCM 網站的存取權
除了能夠控制應用程式的存取之外,您還可以限制對應用程式所使用的原始檔控制管理 (SCM) 進階工具網站的存取。 SCM 網站同時作為 Web 部署端點與 Kudu 主控台。 您可個別指派應用程式和 SCM 網站的存取限制,或讓應用程式與 SCM 網站兩者使用同一組限制。 當您選取 [ 使用主要網站規則] 時,規則清單會隱藏。 SCM 網站使用來自主要網站的規則。 如果您取消選取複選框,您的 SCM 網站設定會再次出現。
限制特定 Azure Front Door 執行個體的存取權
從 Azure Front Door 到應用程式的流量源自一組已知的 IP 範圍 (在 AzureFrontDoor.Backend
服務標籤中定義)。 藉由使用服務標籤限制規則,您可以將流量限制為僅源自 Azure Front Door。 若要確保流量只來自您的特定實例,您必須根據 Azure Front Door 傳送的唯一 HTTP 標頭進一步篩選傳入要求。
PowerShell 範例:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
以程式設計的方式管理存取限制
您也可以以程式設計方式管理存取限制。 下列範例示範如何新增規則以存取限制,以及如何變更主要網站和進階工具網站的不相符規則動作。
新增主要網站的存取限制規則
您可以選擇下列其中一個選項,以程式設計的方式新增主要網站的存取限制規則:
您可以在 Azure Cloud Shell 中執行下列命令。 如需命令的詳細資訊,請參閱 az webapp config access-restriction
。
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
新增規則以限制進階工具網站的存取權限
您可以透過程式設計方式新增 進階工具網站的 存取限制規則。 選擇下列其中一個選項:
您可以在 Cloud Shell 中執行下列命令。 如需命令的詳細資訊,請參閱 az webapp config access-restriction
。
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
變更主要網站的不相符規則動作
您可以選擇下列其中一個選項,以程式設計的方式變更主要網站的不相符規則動作:
您可以在 Cloud Shell 中執行下列命令。 如需命令的詳細資訊,請參閱 az resource
。
ipSecurityRestrictionsDefaultAction
接受的值為 Allow
或 Deny
。
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
變更進階工具網站的不相符規則動作
您可以選擇下列其中一個選項,以程式設計的方式變更進階工具網站的不相符規則動作:
您可以在 Cloud Shell 中執行下列命令。 如需命令的詳細資訊,請參閱 az resource
。
scmIpSecurityRestrictionsDefaultAction
接受的值為 Allow
或 Deny
。
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
設定 Azure Functions 存取限制
存取限制也適用於與 App Service 方案相同功能的函數應用程式。 啟用存取限制時,同時也會針對不允許的 IP 停用 Azure 入口網站程式碼編輯器。