Web Application Firewall에 대한 봇 보호 구성

Front Door용 Azure WAF(Web Application Firewall)는 좋은 봇을 식별하고 잘못된 봇을 차단하기 위한 봇 규칙을 제공합니다. 봇 보호 규칙 집합에 대한 자세한 내용은 봇 보호 규칙 집합을 참조하세요.

이 문서에서는 Azure Front Door 프리미엄 계층에서 봇 보호 규칙을 사용하도록 설정하는 방법을 보여 줍니다.

필수 조건

Azure Portal을 사용하여 Azure Front Door용 WAF 정책 만들기에 설명된 지침을 수행하여 Front Door용 기본 WAF 정책을 만듭니다.

봇 보호 규칙 집합 사용

  1. Azure Portal에서 WAF 정책으로 이동합니다.

  2. 관리형 규칙을 선택하고 할당을 선택합니다.

    Screenshot of the Azure portal showing the WAF policy's managed rules configuration, and the Assign button highlighted.

  3. 추가 규칙 집합 드롭다운 목록에서 사용하려는 봇 보호 규칙 집합의 버전을 선택합니다. 일반적으로 규칙 집합의 최신 버전을 사용하는 것이 좋습니다.

    Screenshot of the Azure portal showing the managed rules assignment page, with the 'Additional rule set' drop-down field highlighted.

  4. 저장을 선택합니다.

WAF 정책의 현재 구성 가져오기

Get-AzFrontDoorWafPolicy cmdlet을 사용하여 WAF 정책의 현재 구성을 검색합니다. 사용자 환경에 올바른 리소스 그룹 이름 및 WAF 정책 이름을 사용하는지 확인합니다.

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

봇 보호 규칙 집합 추가

New-AzFrontDoorWafManagedRuleObject cmdlet을 사용하여 규칙 집합의 버전을 비롯한 봇 보호 규칙 집합을 선택합니다. 그런 다음, WAF의 구성에 규칙 집합을 추가합니다.

아래 예제에서는 WAF 구성에 봇 보호 규칙 집합 버전 1.0을 추가합니다.

$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 정책을 업데이트하여 봇 보호 규칙 집합을 추가합니다.

아래 예제에서는 WAF에 봇 보호 규칙 집합 버전 1.0을 추가합니다. 사용자 환경에 올바른 리소스 그룹 이름 및 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'
        }
      ]
    }
  }
}

다음 단계