Instrucción de reglas de OR - AWS WAF, AWS Firewall Manager, y AWS Shield Advanced

Instrucción de reglas de OR

La instrucción de regla OR combina instrucciones anidadas con lógica OR, por lo que una de las instrucciones anidadas debe coincidir para que la instrucción OR coincida. Requiere al menos dos instrucciones anidadas.

Por ejemplo, si desea bloquear las solicitudes procedentes de un país específico o que contengan una cadena de consulta específica, puede crear una instrucción OR y anidar en ella una instrucción de coincidencia geográfica para el país y una instrucción de coincidencia de cadena para la cadena de consulta.

Si, como alternativa, desea bloquear las solicitudes que no provienen de un país específico o que contengan una cadena de consulta específica, modifique la instrucción OR anterior para anidar la instrucción de coincidencia geográfica en un nivel inferior, dentro de una instrucción NOT. Este nivel de anidamiento requiere que utilice el formato JSON, ya que la consola solo admite un nivel de anidamiento.

Características de la instrucción de reglas

Se puede anidar: puede anidar este tipo de instrucción.

WCU: depende de las instrucciones anidadas.

Dónde encontrar esta instrucción de regla

  • Generador de reglas en la consola: en Si una solicitud, elija coincide con al menos una de las instrucciones (OR) y, a continuación, rellene las instrucciones anidadas.

  • API: OrStatement

Ejemplos

La siguiente lista muestra el uso de OR para combinar otras dos instrucciones. La instrucción OR coincide si alguna de las instrucciones anidadas coincide.

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

Con el editor visual de reglas de la consola, puede anidar la mayoría de las instrucciones anidables en una instrucción de regla lógica, pero no puede utilizar el editor visual para anidar instrucciones OR o AND. Para configurar este tipo de anidación, debe proporcionar la instrucción de la regla en JSON. Por ejemplo, la siguiente lista de reglas JSON incluye una instrucción OR anidada dentro de una instrucción 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" } }