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

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

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

先决条件

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

启用机器人保护规则集

  1. 在 Azure 门户中,导航到您的 Web 应用程序防火墙 (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'
        }
      ]
    }
  }
}

后续步骤