Instrução de regra do OR - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

Instrução de regra do OR

A instrução de regra OR combina instruções aninhadas com a lógica OR, portanto, uma das instruções aninhadas deve corresponder para que a instrução OR corresponda. Isso requer pelo menos duas instruções aninhadas.

Por exemplo, se você deseja bloquear solicitações que vêm de um país específico ou que contêm uma string de consulta específica, você pode criar uma instrução OR e aninhar nela uma instrução de correspondência geográfica para o país e uma instrução de correspondência de string para a string de consulta.

Se, em vez disso, você deseja bloquear solicitações que não vêm de um país específico ou que contêm uma string de consulta específica, você modificaria a instrução OR anterior para aninhar a instrução de correspondência geográfica um nível inferior, dentro de uma instrução NOT. Esse nível de aninhamento requer que você use a formatação JSON, pois o console suporta apenas um nível de aninhamento.

Características das instruções de regras

Aninhável: você pode aninhar esse tipo de instrução.

WCUs: depende das instruções aninhadas.

Onde encontrar essa instrução de regra

  • Criador de regras no console: para Se uma solicitação, escolha corresponder a pelo menos uma das instruções (OR), e preencha as instruções aninhadas.

  • API: OrStatement

Exemplos

A lista a seguir mostra o uso de OR para combinar duas outras instruções. A instrução OR é compatível se alguma das instruções aninhadas corresponder.

{ "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" } } ] } } }

Usando o editor visual de regras do console, você pode agrupar a maioria das instruções aninháveis em uma instrução de regra lógica, mas não pode usar o editor visual para aninhar instruções OR ou AND. Para configurar esse tipo de aninhamento, você precisa fornecer sua instrução de regra em JSON. Por exemplo, a lista de regras JSON a seguir inclui uma instrução OR aninhada dentro de uma instrução AND.

{ "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" } }