你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

本教程介绍如何使用 Azure PowerShell 创建简单的地区筛选策略并将该策略与现有的 Azure Front Door 前端主机相关联。 此示例地区筛选策略会阻止除美国之外的所有其他国家或地区的请求。

如果还没有 Azure 订阅,请现在就创建一个免费帐户

先决条件

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

设置 PowerShell 环境

Azure PowerShell 提供一组可以使用 Azure 资源管理器模型管理 Azure 资源的 cmdlet。

可以在本地计算机上安装 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 选择不是来自“美国”的请求。

什么是 Azure Front Door 域上的地区筛选?中提供了两个字母的国家或地区代码到国家或地区的映射。

$nonUSGeoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty GeoMatch `
-NegateCondition $true `
-MatchValue "US"

将地区筛选匹配条件添加到包含操作和优先级的规则

使用 New-AzFrontDoorWafCustomRuleObject 根据匹配条件、操作和优先级创建 CustomRule 对象 nonUSBlockRule。 自定义规则可以有多个匹配条件。 在本示例中,Action 设置为 BlockPriority 设置为 1,它是最高优先级。

$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
-Name "geoFilterRule" `
-RuleType MatchRule `
-MatchCondition $nonUSGeoMatchCondition `
-Action Block `
-Priority 1

将规则添加到策略

使用 Get-AzResourceGroup 找到包含该 Azure Front Door 配置文件的资源组的名称。 接下来,使用 New-AzFrontDoorWafPolicy 在包含 Azure Front Door 配置文件的指定资源组中创建一个 geoPolicy 对象(包含 nonUSBlockRule)。 必须为地区策略提供唯一名称。

以下示例使用资源组名称 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

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

Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]

注意

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

后续步骤