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

为 Web 应用程序防火墙配置机器人防护

适用于 Front Door 的 Azure Web 应用程序防火墙 (WAF) 提供了机器人规则来识别好的机器人,并防范不好的机器人。 有关机器人防护规则集的详细信息,请参阅机器人防护规则集

本文介绍如何在 Azure Front Door 高级层上启用机器人防护规则。

先决条件

按照使用 Azure 门户为 Azure Front Door 创建 WAF 策略中所述的说明,为 Front Door 创建基本 WAF 策略。

启用机器人防护规则集

  1. 在 Azure 门户中,导航到 WAF 策略。

  2. 选择“托管规则”,然后选择“分配”。

    Azure 门户的屏幕截图,其中显示了 WAF 策略的托管规则配置,并突出显示了“分配”按钮。

  3. 在“其他规则集”下拉列表中,选择要使用的机器人防护规则集的版本。 通常最好使用最新版本的规则集。

    Azure 门户的屏幕截图,其中显示了托管规则分配页,并突出显示了“其他规则集”下拉列表字段。

  4. 选择“保存” 。

获取 WAF 策略的当前配置

使用 Get-AzFrontDoorWafPolicy cmdlet 检索 WAF 策略的当前配置。 确保为自己的环境使用正确的资源组名称和 WAF 策略名称。

$frontDoorWafPolicy = Get-AzFrontDoorWafPolicy `
  -ResourceGroupName 'FrontDoorWafPolicy' `
  -Name 'WafPolicy'

添加机器人防护规则集

使用 New-AzFrontDoorWafManagedRuleObject cmdlet 选择机器人防护规则集,包括规则集的版本。 然后,将规则集添加到 WAF 的配置中。

以下示例将机器人防护规则集的 1.0 版本添加到 WAF 的配置中。

$botProtectionRuleSet = New-AzFrontDoorWafManagedRuleObject `
  -Type 'Microsoft_BotManagerRuleSet' `
  -Version '1.0'

$frontDoorWafPolicy.ManagedRules.Add($botProtectionRuleSet)

应用配置

使用 Update-AzFrontDoorWafPolicy cmdlet 更新 WAF 策略以包含上面创建的配置。

$frontDoorWafPolicy | Update-AzFrontDoorWafPolicy

启用机器人防护规则集

使用 az network front-door waf-policy managed-rules add 命令更新 WAF 策略以添加机器人防护规则集。

下面的示例将机器人防护规则集的 1.0 版本添加到 WAF。 确保为自己的环境使用正确的资源组名称和 WAF 策略名称。

az network front-door waf-policy managed-rules add \
  --resource-group FrontDoorWafPolicy \
  --policy-name WafPolicy \
  --type Microsoft_BotManagerRuleSet \
  --version 1.0

以下示例 Bicep 文件显示了如何执行以下步骤:

  • 创建 Front Door WAF 策略。
  • 启用机器人防护规则集的 1.0 版本。
param wafPolicyName string = 'WafPolicy'

@description('The mode that the WAF should be deployed using. In "Prevention" mode, the WAF will block requests it detects as malicious. In "Detection" mode, the WAF will not block requests and will simply log the request.')
@allowed([
  'Detection'
  'Prevention'
])
param wafMode string = 'Prevention'

resource wafPolicy 'Microsoft.Network/frontDoorWebApplicationFirewallPolicies@2022-05-01' = {
  name: wafPolicyName
  location: 'Global'
  sku: {
    name: 'Premium_AzureFrontDoor'
  }
  properties: {
    policySettings: {
      enabledState: 'Enabled'
      mode: wafMode
    }
    managedRules: {
      managedRuleSets: [
        {
          ruleSetType: 'Microsoft_BotManagerRuleSet'
          ruleSetVersion: '1.0'
        }
      ]
    }
  }
}

后续步骤