本教程演示如何使用 Azure PowerShell 创建示例地理筛选策略,并将策略与现有的 Azure Front Door 前端主机相关联。 此示例地理筛选策略阻止来自除美国以外的所有其他国家或地区的请求。
如果没有 Azure 订阅,请立即创建 试用版 。
先决条件
在开始设置异地筛选器策略之前,请设置 PowerShell 环境并创建 Azure Front Door 配置文件。
设置 PowerShell 环境
Azure PowerShell 提供了一组 cmdlet,这些 cmdlet 使用 Azure 资源管理器 模型管理 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
使用 New-AzFrontDoorWafCustomRuleObject 基于匹配条件、作和优先级创建对象nonUSBlockRule
。 自定义规则可以有多个匹配条件。 在此示例中, Action
设置为 Block
.
Priority
设置为 1
最高优先级。
$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
-Name "geoFilterRule" `
-RuleType MatchRule `
-MatchCondition $nonUSGeoMatchCondition `
-Action Block `
-Priority 1
将规则添加到策略
使用 Get-AzResourceGroup
查找包含 Azure Front Door 配置文件的资源组的名称。 接下来,在包含 Azure Front Door 配置文件的指定资源组中创建包含 geoPolicy
nonUSBlockRule
New-AzFrontDoorWafPolicy 的对象。 必须为地理策略提供唯一的名称。
以下示例使用资源组名称 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
属性设置为地理策略的资源 ID。
Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]
注释
只需将属性设置为 WebApplicationFirewallPolicyLink
将 WAF 策略链接到 Azure Front Door 前端主机一次。 后续策略更新会自动应用于前端主机。
后续步骤
- 了解 Azure Web 应用程序防火墙。
- 了解如何 创建 Azure Front Door 实例。