Azure PowerShell을 사용하여 WAF 정책 구성

WAF(웹 애플리케이션 방화벽) 정책은 요청이 Azure Front Door에 도착할 때 필요한 검사를 정의합니다.

이 문서에서는 일부 사용자 지정 규칙으로 구성되고 Azure 관리형 기본 규칙 집합이 사용하도록 설정된 WAF 정책을 구성하는 방법을 보여줍니다.

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

필수 조건

속도 제한 정책을 설정하기 전에 PowerShell 환경을 설정하고 Azure Front Door 프로필을 만듭니다.

PowerShell 환경 설정

Azure PowerShell은 Azure 리소스를 관리하기 위해 Azure Resource Manager 모델을 사용하는 cmdlet 집합을 제공합니다.

로컬 머신에 Azure PowerShell 설치하고 모든 PowerShell 세션에서 사용할 수 있습니다. 페이지의 지침에 따라 Azure 자격 증명으로 로그인합니다. Az PowerShell 모듈을 설치합니다.

Azure에 로그인

Connect-AzAccount

Azure Front Door 모듈을 설치하기 전에 최신 PowerShellGet 버전을 설치했는지 확인합니다. 다음 명령을 실행하고 PowerShell을 다시 엽니다.

Install-Module PowerShellGet -Force -AllowClobber

Az.FrontDoor 모듈 설치

Install-Module -Name Az.FrontDoor

Azure Front Door 프로필 만들기

빠른 시작: Azure Front Door 프로필 만들기에 설명된 지침에 따라 Azure Front Door 프로필을 만듭니다.

HTTP 매개 변수를 기반으로 하는 사용자 지정 규칙

다음 예제에서는 New-AzFrontDoorWafMatchConditionObject를 사용하여 2개의 일치 조건으로 사용자 지정 규칙을 구성하는 방법을 보여줍니다. 요청은 참조 페이지에 정의된 대로 지정된 사이트에서 발생하고 쿼리 문자열에는 password가 포함되지 않습니다.

$referer = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestHeader -OperatorProperty Equal -Selector "Referer" -MatchValue "www.mytrustedsites.com/referpage.html"
$password = New-AzFrontDoorWafMatchConditionObject -MatchVariable QueryString -OperatorProperty Contains -MatchValue "password"
$AllowFromTrustedSites = New-AzFrontDoorWafCustomRuleObject -Name "AllowFromTrustedSites" -RuleType MatchRule -MatchCondition $referer,$password -Action Allow -Priority 1

HTTP 요청 메서드를 기반으로 하는 사용자 지정 규칙

New-AzFrontDoorWafCustomRuleObject를 사용하여 PUT 메서드를 차단하는 규칙을 만듭니다.

$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2

크기 제약 조건을 기반으로 사용자 지정 규칙 만들기

다음 예제에서는 Azure PowerShell을 사용하여 URL이 100자를 초과하는 규칙 차단 요청을 만듭니다.

$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3

관리형 기본 규칙 집합 추가

다음 예제에서는 Azure PowerShell을 사용하여 관리형 기본 규칙 집합을 만듭니다.

$managedRules =  New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0

구성 - 보안 정책 구성

Get-AzResourceGroup을 사용하여 Azure Front Door 프로필이 포함된 리소스 그룹의 이름을 찾습니다. 그런 다음, Azure Front Door 프로필이 포함된 지정된 리소스 그룹에서 New-AzFrontDoorWafPolicy를 사용하여 이전 단계에서 만들어진 규칙으로 보안 정책을 구성합니다.

$myWAFPolicy=New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Customrule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention

기존 Azure Front Door 프런트 엔드 호스트에 보안 정책 개체를 연결하고 Azure Front Door 속성을 업데이트합니다. 먼저 Get-AzFrontDoor를 사용하여 Azure Front Door 개체를 검색합니다. 그런 다음, Set-AzFrontDoor를 사용하여 이전 단계에서 만든 $myWAFPolicy$resourceId로 프런트 엔드 WebApplicationFirewallPolicyLink 속성을 설정합니다.

다음 예제에서는 빠른 시작: Azure Front Door 만들기에 제공된 지침을 사용하여 Azure Front Door 프로필을 만들었다는 가정 하에 리소스 그룹 이름 myResourceGroupFD1을 사용합니다. 또한 다음 예제에서 $frontDoorName을 Azure Front Door 프로필 이름으로 바꿉니다.

   $FrontDoorObjectExample = Get-AzFrontDoor `
     -ResourceGroupName myResourceGroupFD1 `
     -Name $frontDoorName
   $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
   Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

참고 항목

보안 정책을 Azure Front Door 프런트 엔드에 연결하려면 WebApplicationFirewallPolicyLink 속성을 한 번만 설정하면 됩니다. 이후의 정책 업데이트는 프런트 엔드에 자동으로 적용됩니다.

다음 단계