Application Gateway WAF v2에 대한 속도 제한 사용자 지정 규칙 만들기
이 문서의 내용
속도 제한을 사용하면 애플리케이션으로 향하는 비정상적으로 높은 수준의 트래픽을 감지하고 차단할 수 있습니다. 속도 제한은 구성된 속도 제한 규칙과 일치하는 모든 트래픽을 계산하고 구성된 임계값을 초과하는 규칙과 일치하는 트래픽에 대해 구성된 작업을 수행하여 작동합니다. 자세한 내용은 속도 제한 개요 를 참조하세요.
다음 정보를 사용하여 Application Gateway WAFv2에 대한 속도 제한 규칙을 구성합니다.
시나리오 1 - 모든 트래픽과 일치하도록 구성된 임계값을 초과하는 클라이언트 IP별로 트래픽의 속도를 제한하는 규칙을 만듭니다.
기존 Application Gateway WAF 정책 열기
사용자 지정 규칙 선택
사용자 지정 규칙 추가
사용자 지정 규칙의 이름 추가
속도 제한 규칙 유형 라디오 단추 선택
규칙의 우선 순위 입력
속도 제한 기간에 대해 1분 선택
속도 제한 임계값(요청)에 200을 입력
그룹 속도 제한 트래픽에 대한 클라이언트 주소 선택
조건에서 일치 유형으로 IP 주소 선택
작업에서 포함하지 않음 라디오 단추 선택
일치 조건의 경우 IP 주소 또는 범위에서 255.255.255.255/32를 입력
작업 설정을 트래픽 거부로 둡니다.
추가를 선택하여 정책에 사용자 지정 규칙을 추가합니다.
저장을 선택하여 구성을 저장하고 WAF 정책에 대해 사용자 지정 규칙을 활성화합니다.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator IPMatch -MatchValue 255.255.255.255/32 -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName ClientAddr
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name ClientIPRateLimitRule -Priority 90 -RateLimitDuration OneMin -RateLimitThreshold 100 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name ClientIPRateLimitRule --priority 90 --rule-type RateLimitRule --rate-limit-threshold 100 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"ClientAddr"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RemoteAddr --operator IPMatch --policy-name ExamplePolicy --name ClientIPRateLimitRule --resource-group ExampleRG --value 255.255.255.255/32 --negate true
시나리오 2 - 미국에서 발생하는 트래픽을 제외한 모든 트래픽과 일치하도록 속도 제한 사용자 지정 규칙을 만듭니다. 트래픽은 클라이언트 소스 IP 주소의 지리적 위치를 기반으로 그룹화되고 계산되며 속도가 제한됩니다.
기존 Application Gateway WAF 정책 열기
사용자 지정 규칙 선택
사용자 지정 규칙 추가
사용자 지정 규칙의 이름 추가
속도 제한 규칙 유형 라디오 단추 선택
규칙의 우선 순위 입력
속도 제한 기간에 대해 1분 선택
속도 제한 임계값(요청)에 500을 입력
그룹 속도 제한 트래픽에 대한 지리적 위치 선택
조건에서 일치 유형으로 지리적 위치 선택
일치 변수 섹션에서 일치 변수에 대해 RemoteAddr을 선택
작업에 대해 Is not radio 단추 선택
국가/지역으로 미국 선택
작업 설정을 트래픽 거부로 둡니다.
추가를 선택하여 정책에 사용자 지정 규칙을 추가합니다.
저장을 선택하여 구성을 저장하고 WAF 정책에 대해 사용자 지정 규칙을 활성화합니다.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator GeoMatch -MatchValue "US" -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariablde -VariableName GeoLocation
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name GeoRateLimitRule -Priority 95 -RateLimitDuration OneMin -RateLimitThreshold 500 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name GeoRateLimitRule --priority 95 --rule-type RateLimitRule --rate-limit-threshold 500 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"GeoLocation"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RemoteAddr --operator GeoMatch --policy-name ExamplePolicy --name GeoRateLimitRule --resource-group ExampleRG --value US --negate true
시나리오 3 - 로그인 페이지의 모든 트래픽과 일치하고 GroupBy None 변수를 사용하여 속도 제한 사용자 지정 규칙을 만듭니다. 그러면 규칙과 일치하는 모든 트래픽을 하나로 그룹화하고 계산하며 규칙(/login)과 일치하는 모든 트래픽에 작업을 적용합니다.
기존 Application Gateway WAF 정책 열기
사용자 지정 규칙 선택
사용자 지정 규칙 추가
사용자 지정 규칙의 이름 추가
속도 제한 규칙 유형 라디오 단추 선택
규칙의 우선 순위 입력
속도 제한 기간에 대해 1분 선택
속도 제한 임계값(요청)에 100을 입력
그룹 속도 제한 트래픽에 대해 없음을 선택
조건에서 일치 유형으로 문자열 선택
일치 변수 섹션에서 일치 변수에 대해 RequestUri를 선택
작업에 대해 Is not radio 단추 선택
연산자의 경우 포함을 선택
일치 값에 대한 로그인 페이지 경로를 입력합니다. 이 예제에서는 /login을 사용합니다.
작업 설정을 트래픽 거부로 둡니다.
추가를 선택하여 정책에 사용자 지정 규칙을 추가합니다.
저장을 선택하여 구성을 저장하고 WAF 정책에 대해 사용자 지정 규칙을 활성화합니다.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RequestUri
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator Contains -MatchValue "/login" -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName None
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name LoginRateLimitRule -Priority 99 -RateLimitDuration OneMin -RateLimitThreshold 100 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name LoginRateLimitRule --priority 99 --rule-type RateLimitRule --rate-limit-threshold 100 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"None"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RequestUri --operator Contains --policy-name ExamplePolicy --name LoginRateLimitRule --resource-group ExampleRG --value '/login'
다음 단계
웹 애플리케이션 방화벽 규칙 사용자 지정