봇 컨트롤 예제: 차단된 특정 봇 허용 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

봇 컨트롤 예제: 차단된 특정 봇 허용

봇이 둘 이상의 Bot Control 규칙에 의해 차단될 수 있습니다. 각 차단 규칙마다 다음 절차를 통해 실행합니다.

AWS WAF 봇 제어 규칙이 차단하고 싶지 않은 봇을 차단하는 경우 다음과 같이 하십시오.

  1. 로그를 확인하여 봇을 차단하는 Bot Control 규칙을 식별합니다. 차단 규칙은 이름이 terminatingRule로 시작하는 필드의 로그에 지정됩니다. 웹 ACL 로그에 대한 자세한 내용은 AWS WAF 웹 ACL 트래픽 로깅 섹션을 참조하세요. 참고로, 규칙이 요청에 추가하는 레이블입니다.

  2. 웹 ACL에서 차단 규칙의 작업을 계산으로 재정의합니다. 콘솔에서 이 작업을 수행하려면 웹 ACL에서 규칙 그룹 규칙을 편집하고 규칙에 대해 Count의 규칙 작업 재정의를 선택합니다. 이렇게 하면 봇이 규칙에 의해 차단되지 않지만 규칙은 여전히 해당 레이블을 일치 요청에 적용합니다.

  3. Bot Control 관리형 규칙 그룹 다음에 웹 ACL에 레이블 일치 규칙을 추가합니다. 재정의된 규칙의 레이블과 일치하도록 규칙을 구성하고, 차단하지 않을 봇을 제외한 모든 일치 요청을 차단하도록 구성합니다.

    이제 허용할 봇이 로그를 통해 식별된 차단 규칙에 의해 더 이상 차단되지 않도록 웹 ACL이 구성됩니다.

트래픽과 로그를 다시 확인하여 봇의 통과가 허용되는지 확인합니다. 그렇지 않은 경우 위 절차를 다시 실행합니다.

예를 들어, pingdom을 제외한 모든 모니터링 봇을 차단하고자 한다고 가정해 보겠습니다. 이 경우, 개수를 계산하도록 CategoryMonitoring 규칙을 재정의하고 나서 봇 이름 레이블이 pingdom인 것을 제외하고 모든 모니터링 봇을 차단하는 규칙을 작성합니다.

다음 규칙은 Bot Control 관리형 규칙 그룹을 사용하지만 개수를 계산하도록 CategoryMonitoring에 대한 규칙 작업을 재정의합니다. 범주 모니터링 규칙은 평소와 같이 일치 요청에 해당 레이블을 적용하지만 일반적인 차단 작업을 수행하는 대신 요청의 수만 계산합니다.

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesBotControlRuleSet": { "InspectionLevel": "COMMON" } } ], "RuleActionOverrides": [ { "ActionToUse": { "Count": {} }, "Name": "CategoryMonitoring" } ], "ExcludedRules": [] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }

다음 규칙은 이전 CategoryMonitoring 규칙이 일치하는 웹 요청에 추가하는 범주 모니터링 레이블과 일치합니다. 범주 모니터링 요청 중에서 이 규칙은 봇 이름 pingdom에 대한 레이블이 있는 요청을 제외한 모든 요청을 차단합니다.

다음 규칙은 웹 ACL 처리 순서에서 이전 Bot Control 관리형 규칙 그룹 다음에 실행해야 합니다.

{ "Name": "match_rule", "Priority": 10, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom" } } } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }