为Azure Front Door设置地理筛选 WAF 策略

本教程演示如何使用Azure PowerShell创建示例地理筛选策略,并将策略与现有Azure Front Door前端主机相关联。 此示例地理筛选策略阻止来自除United States以外的所有其他国家或地区的请求。

如果没有Azure订阅,请立即创建 Trial

先决条件

在开始设置异地筛选器策略之前,请设置 PowerShell 环境并创建Azure Front Door配置文件。

设置 PowerShell 环境

Azure PowerShell提供了一组 cmdlet,这些 cmdlet 使用 Azure Resource Manager 模型来管理Azure资源。

可以在本地计算机上安装 Azure PowerShell,并将其用于任何 PowerShell 会话。 按照页面上的说明使用Azure凭据登录。 然后安装 Az PowerShell 模块。

使用用于登录的交互式对话框连接到Azure

Install-Module -Name Az
Connect-AzAccount -Environment AzureChinaCloud

请确保已安装当前版本的 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"

将地理过滤匹配条件添加到具有操作和优先级的规则中

使用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前端主机。 更新Azure Front Door属性。

因此,首先使用 Get-AzFrontDoor 检索 Azure Front Door 对象。

$geoFrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName myResourceGroupFD1
$geoFrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $geoPolicy.Id

接下来,使用 WebApplicationFirewallPolicyLink 命令将前端 属性设置为地理策略的资源 ID。

Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]

注释

只需设置 WebApplicationFirewallPolicyLink 属性一次即可将 WAF 策略链接到Azure Front Door前端主机。 后续策略更新会自动应用于前端主机。

后续步骤