OR 규칙 문 - AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced

OR 규칙 문

OR 규칙 문은 중첩된 문과 OR 로직을 결합하므로 중첩된 문 중 하나가 매치할 OR 문과 일치해야 합니다. 여기에는 적어도 두 개의 중첩 문이 필요합니다.

예를 들어 특정 국가에서 나온 요청이나 특정 쿼리 문자열이 포함된 요청을 차단하려는 경우에는 OR 문을 생성하고 해당 국가에 대한 지역 일치 문과 쿼리 문자열에 대한 문자열 일치 문을 중첩할 수 있습니다.

대신 특정 국가에서 나오지 않거나 특정 쿼리 문자열이 포함된 요청을 차단하려면 이전 OR 문을 수정하여 NOT 문 내부에서 지역 일치 문을 한 수준 낮게 중첩합니다. 콘솔은 한 수준의 중첩만 지원하므로 이러한 수준의 중첩을 위해서는 JSON 서식을 사용해야 합니다.

규칙 문 특성

중첩 가능 – 이러한 문 유형을 중첩할 수 있습니다.

WCU – 중첩된 문에 따라 다릅니다.

이 규칙 문을 찾을 수 있는 위치

  • 콘솔의 규칙 빌더요청의 경우에서 최소 하나의 문과 일치(OR)를 선택한 다음, 중첩된 문을 입력합니다.

  • APIOrStatement

예시

다음 목록은 OR를 사용하여 다른 두 명령문을 결합하는 방법을 보여줍니다. 중첩된 명령문 중 하나라도 일치하면 OR 문은 일치하는 것입니다.

{ "Name": "neitherOfTwo", "Priority": 1, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "neitherOfTwo" }, "Statement": { "OrStatement": { "Statements": [ { "GeoMatchStatement": { "CountryCodes": [ "CA" ] } }, { "IPSetReferenceStatement": { "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777" } } ] } } }

콘솔 규칙 시각적 편집기를 사용하면 대부분의 중첩 가능한 명령문을 논리적 규칙 문 아래에 중첩할 수 있지만 시각적 편집기를 사용하여 OR 또는 AND 문을 중첩할 수는 없습니다. 이러한 유형의 중첩을 구성하려면 규칙 문을 JSON으로 제공해야 합니다. 예를 들어, 다음 JSON 규칙 목록에는 AND 문 내에 중첩된 OR 문이 포함됩니다.

{ "Name": "match_rule", "Priority": 0, "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" } } } }, { "OrStatement": { "Statements": [ { "GeoMatchStatement": { "CountryCodes": [ "JM", "JP" ] } }, { "ByteMatchStatement": { "SearchString": "JCountryString", "FieldToMatch": { "Body": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "CONTAINS" } } ] } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }