為 Azure Front Door 設定地區篩選 WAF 原則
本教學課程會說明如何使用 Azure PowerShell 來建立簡單的地區篩選原則,並將此原則與現有的 Azure Front Door 前端主機產生關聯。 此範例地區篩選原則會封鎖來自北美洲以外的所有其他國家或地區的要求。
如果您沒有 Azure 訂用帳戶,請立即建立免費帳戶。
必要條件
在開始設定地區篩選原則之前,請先設定 PowerShell 環境,並建立 Azure Front Door 設定檔。
設定 PowerShell 環境
Azure PowerShell 提供了一組 Cmdlet,它們會使用 Azure Resource Manager 模型來管理 Azure 資源。
您可以在本機電腦上安裝 Azure PowerShell,並將其用於任何 PowerShell 工作階段。 請遵循頁面上的指示,使用 Azure 認證進行登入。 安裝 Az PowerShell 模組。
使用互動式登入對話方塊連線至 Azure
Install-Module -Name Az
Connect-AzAccount
請確定您已安裝目前的 PowerShellGet 版本。 執行下列命令,並重新開啟 PowerShell。
Install-Module PowerShellGet -Force -AllowClobber
安裝 Az.FrontDoor 模組
Install-Module -Name Az.FrontDoor
建立 Azure Front Door 設定檔
請遵循快速入門:建立 Azure Front Door 設定檔中所述的指示,以建立 Azure Front Door 設定檔。
定義地區篩選比對條件
建立比對條件範例,使其在建立比對條件時,於參數上使用 New-AzFrontDoorWafMatchConditionObject,而選取並非來自 "US" 的要求。
什麼是 Azure Front Door 的網域地區篩選?中會提供國家或地區代碼 (兩個字母) 與國家或地區的對應。
$nonUSGeoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty GeoMatch `
-NegateCondition $true `
-MatchValue "US"
使用動作和優先順序在規則中新增地區篩選比對條件
使用 New-AzFrontDoorWafCustomRuleObject,根據比對條件、動作和優先順序,來建立 CustomRule
物件 nonUSBlockRule
。 自訂規則可以有多個比對條件。 在此範例中,Action
會設為 Block
。 Priority
會設為 1
,這是最高優先順序。
$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
-Name "geoFilterRule" `
-RuleType MatchRule `
-MatchCondition $nonUSGeoMatchCondition `
-Action Block `
-Priority 1
在原則中新增規則
使用 Get-AzResourceGroup
尋找包含 Azure Front Door 設定檔的資源群組名稱。 接下來,使用 New-AzFrontDoorWafPolicy,在包含 Azure Front Door 設定檔的指定資源群組中,建立包含 nonUSBlockRule
的 geoPolicy
物件。 您必須為地區原則提供唯一的名稱。
下列範例會使用資源群組名稱 myResourceGroupFD1
,假設您已使用快速入門:建立 Azure Front Door 中提供的指示,來建立 Azure Front Door 設定檔。 在下列範例中,將該原則名稱 geoPolicyAllowUSOnly
取代為唯一的原則名稱。
$geoPolicy = New-AzFrontDoorWafPolicy `
-Name "geoPolicyAllowUSOnly" `
-resourceGroupName myResourceGroupFD1 `
-Customrule $nonUSBlockRule `
-Mode Prevention `
-EnabledState Enabled
將 WAF 原則連結至 Azure Front Door 前端主機
將 WAF 原則物件連結至現有的 Azure Front Door 前端主機。 更新 Azure Front Door 屬性。
若要這樣做,請先使用 Get-AzFrontDoor 擷取 Azure Front Door 物件。
$geoFrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName myResourceGroupFD1
$geoFrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $geoPolicy.Id
接下來,使用 Set-AzFrontDoor,將前端 WebApplicationFirewallPolicyLink
屬性設定為地理原則的資源識別碼。
Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]
注意
您只需要設定 WebApplicationFirewallPolicyLink
屬性一次,即可將 WAF 原則連結至 Azure Front Door 前端主機。 後續原則更新會自動套用至前端主機。