

**Presentamos una nueva experiencia de consola para AWS WAF**

Ahora puede usar la experiencia actualizada para acceder a las AWS WAF funciones desde cualquier parte de la consola. Para obtener más información, consulte [Trabajar con la consola](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS WAF Ejemplos de control de bots
<a name="waf-bot-control-examples"></a>

En esta sección se muestran ejemplos de configuraciones que se adaptan a una variedad de casos de uso habituales de las implementaciones de AWS WAF Bot Control. 

Cada ejemplo proporciona una descripción del caso de uso y, a continuación, muestra la solución en las listas JSON para las reglas configuradas de forma personalizada. 

**nota**  
Las listas JSON que se muestran en estos ejemplos se crearon en la consola configurando la regla y, a continuación, editándola con el **Editor de reglas JSON**. 

**Topics**
+ [Ejemplo de control de bots: configuración sencilla](waf-bot-control-example-basic.md)
+ [Ejemplo de control de bots: permitir de forma explícita los bots verificados](waf-bot-control-example-allow-verified-bots.md)
+ [Ejemplo de control de bots: bloqueo de los bots verificados](waf-bot-control-example-block-verified-bots.md)
+ [Ejemplo de control de bots: permitir un bot bloqueado específico](waf-bot-control-example-allow-blocked-bot.md)
+ [Ejemplo de control de bots: creación de una excepción para un agente de usuario bloqueado](waf-bot-control-example-user-agent-exception.md)
+ [Ejemplo de control de bots: uso del control de bots solo para la página de inicio de sesión](waf-bot-control-example-scope-down-login.md)
+ [Ejemplo de control de bots: uso del control de bots solo para contenido dinámico](waf-bot-control-example-scope-down-dynamic-content.md)
+ [Ejemplo de control de bots: exclusión de un rango de IP de la administración de bots](waf-bot-control-example-scope-down-ip.md)
+ [Ejemplo de control de bots: permisión del tráfico de un bot que usted controla](waf-bot-control-example-scope-down-your-bot.md)
+ [Ejemplo de control de bots: habilitación de un nivel de inspección específico](waf-bot-control-example-targeted-inspection-level.md)
+ [Ejemplo de control de bots: utilizar dos instrucciones para limitar el uso del nivel de inspección objetivo](waf-bot-control-example-common-and-targeted-inspection-level.md)

# Ejemplo de control de bots: configuración sencilla
<a name="waf-bot-control-example-basic"></a>

La siguiente lista de JSON muestra un ejemplo de paquete de protección (ACL web) con un grupo de reglas gestionado por AWS WAF Bot Control. Tenga en cuenta la configuración de visibilidad, que hace AWS WAF que se almacenen las muestras y métricas de las solicitudes con fines de supervisión. 

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
         "Name": "AWS-AWSBotControl-Example",
         "Priority": 5,
         "Statement": {
            "ManagedRuleGroupStatement": {
               "VendorName": "AWS",
               "Name": "AWSManagedRulesBotControlRuleSet",
               "ManagedRuleGroupConfigs": [
                 {
                   "AWSManagedRulesBotControlRuleSet": {
                     "InspectionLevel": "COMMON"
                   }
                 }
               ],
               "RuleActionOverrides": [],
               "ExcludedRules": []
            },
            "VisibilityConfig": {
               "SampledRequestsEnabled": true,
               "CloudWatchMetricsEnabled": true,
               "MetricName": "AWS-AWSBotControl-Example"
             }
          }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```

# Ejemplo de control de bots: permitir de forma explícita los bots verificados
<a name="waf-bot-control-example-allow-verified-bots"></a>

AWS WAF Bot Control no bloquea los bots que se AWS consideran bots comunes y verificables. Cuando el control de bots identifica una solicitud web como procedente de un bot verificado, añade una etiqueta con el nombre del bot y otra que indica que se trata de un bot verificado. El control de bots no añade ninguna otra etiqueta, como etiquetas de señales, para evitar que se bloqueen los bots que se sabe que funcionan correctamente.

Es posible que tengas otras AWS WAF reglas que bloqueen los bots verificados. Si quiere asegurarse de que los bots verificados están permitidos, añada una regla personalizada para permitirlos en función de las etiquetas del control de bots. La nueva regla debe ejecutarse después del grupo de reglas administradas de control de bots, de modo que las etiquetas estén disponibles para compararlas con ellas. 

La siguiente regla permite explícitamente los bots verificados.

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Allow": {}
    }
}
```

# Ejemplo de control de bots: bloqueo de los bots verificados
<a name="waf-bot-control-example-block-verified-bots"></a>

Para bloquear los bots verificados, debe agregar una regla para bloquearlos que se ejecute según el grupo de reglas administradas de control de bots de AWS WAF . Para ello, identifique los nombres de los bots que quiera bloquear y utilice una instrucción de coincidencia de etiquetas para identificarlos y bloquearlos. Si solo quiere bloquear todos los bots verificados, puede omitir la coincidencia con la etiqueta `bot:name:`. 

La siguiente regla bloquea solo el bot verificado `bingbot`. Esta regla debe ejecutarse después del grupo de reglas administradas de control de bots.

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:name:bingbot"
            }
          },
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:verified"
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
  }
```

La siguiente regla bloquea todos los bots verificados.

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
}
```

# Ejemplo de control de bots: permitir un bot bloqueado específico
<a name="waf-bot-control-example-allow-blocked-bot"></a>

Es posible que un bot esté bloqueado por más de una de las reglas de control de bots. Siga el procedimiento a continuación para cada regla de bloqueo. 

Si una AWS WAF regla de control de bots bloquea un bot que no quieres bloquear, haz lo siguiente:

1. Compruebe los registros para identificar la regla de control de bots que bloquea el bot. La regla de bloqueo se especificará en los registros de los campos cuyos nombres comiencen por `terminatingRule`. Para obtener información acerca de los registros de paquete de protección (ACL web), consulte [Registro AWS WAF del tráfico del paquete de protección (ACL web)](logging.md). Tenga en cuenta que la etiqueta que es la regla se añade a las solicitudes. 

1. En su paquete de protección (ACL web), anule la acción de regla de bloqueo para el recuento. Para hacerlo en la consola, edite la regla del grupo de reglas del paquete de protección (ACL web) y elija la anulación de una acción de regla Count para la regla. Esto garantiza que el bot no esté bloqueado por la regla, pero la regla seguirá aplicando su etiqueta a las solicitudes coincidentes. 

1. Añada una regla de coincidencia de etiquetas a su paquete de protección (ACL web) después del grupo de reglas administradas de control de bots. Configure la regla para que coincida con la etiqueta de la regla anulada y bloquee todas las solicitudes coincidentes, excepto las del bot que no desee bloquear. 

   Su paquete de protección (ACL web) ya está configurado para que la regla de bloqueo que identificó en los registros no bloquee el bot que desea permitir. 

Compruebe de nuevo el tráfico y sus registros para asegurarse de que el bot esté autorizado a pasar. Si no es así, vuelva a realizar el procedimiento anterior.

Por ejemplo, suponga que desea bloquear todos los bots de monitorización, excepto `pingdom`. En este caso, anule la regla `CategoryMonitoring` para el recuento y, a continuación, escriba una regla para bloquear todos los bots de supervisión, excepto los que tengan la etiqueta `pingdom` con el nombre del bot. 

La siguiente regla usa el grupo de reglas administradas por el control de bots, pero anula la acción de regla para `CategoryMonitoring` para el recuento. La regla de supervisión de categorías aplica sus etiquetas como de costumbre a las solicitudes coincidentes, pero solo las cuenta en lugar de realizar su acción habitual de bloqueo. 

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

La siguiente regla coincide con la etiqueta de monitorización de categorías que la regla `CategoryMonitoring` anterior añade a las solicitudes web coincidentes. Entre las solicitudes de monitorización por categorías, esta regla bloquea todas excepto las que tienen una etiqueta para el nombre del bot `pingdom`. 

La siguiente regla debe ejecutarse después del grupo de reglas administradas de control de bots anterior en el orden de procesamiento del paquete de protección (ACL web). 

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

# Ejemplo de control de bots: creación de una excepción para un agente de usuario bloqueado
<a name="waf-bot-control-example-user-agent-exception"></a>

Si se bloquea por error el tráfico de algunos agentes de usuario ajenos al navegador, puede crear una excepción configurando la regla de control de AWS WAF bots infractora en Recuento y, `SignalNonBrowserUserAgent` a continuación, combinando el etiquetado de la regla con sus criterios de excepción. 

**nota**  
Las aplicaciones para móviles suelen tener agentes de usuario distintos de los navegadores, que la regla `SignalNonBrowserUserAgent` bloquea de forma predeterminada. 

La siguiente regla usa el grupo de reglas administradas por el control de bots, pero anula la acción de regla para `SignalNonBrowserUserAgent` para el recuento. La regla de señal aplica sus etiquetas como de costumbre a las solicitudes coincidentes, pero solo las cuenta en lugar de realizar su acción habitual de bloqueo. 

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

La siguiente regla coincide con la etiqueta de monitorización de categorías que la regla del control de bots de `SignalNonBrowserUserAgent` anterior añade a las solicitudes web coincidentes. Entre las solicitudes de señal, esta regla bloquea todas excepto las que tienen el agente de usuario que queremos permitir. 

La siguiente regla debe ejecutarse después del grupo de reglas administradas de control de bots anterior en el orden de procesamiento del paquete de protección (ACL web). 

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:signal:non_browser_user_agent"
            }
          },
          {
            "NotStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "SingleHeader": {
                      "Name": "user-agent"
                    }
                  },
                  "PositionalConstraint": "EXACTLY",
                  "SearchString": "PostmanRuntime/7.29.2",
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "match_rule"
    }
}
```

# Ejemplo de control de bots: uso del control de bots solo para la página de inicio de sesión
<a name="waf-bot-control-example-scope-down-login"></a>

En el siguiente ejemplo, se utiliza una sentencia de alcance reducido para aplicar el control de AWS WAF bots únicamente al tráfico que llega a la página de inicio de sesión de un sitio web, que se identifica mediante la ruta URI. `login` La ruta de URI a la página de inicio de sesión puede ser diferente a la del ejemplo, en función de la aplicación y el entorno.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "ByteMatchStatement": {
        "SearchString": "login",
        "FieldToMatch": {
          "UriPath": {}
        },
        "TextTransformations": [
          {
            "Priority": 0,
            "Type": "NONE"
          }
        ],
        "PositionalConstraint": "CONTAINS"
      }
    }
  }
}
```

# Ejemplo de control de bots: uso del control de bots solo para contenido dinámico
<a name="waf-bot-control-example-scope-down-dynamic-content"></a>

En este ejemplo, se utiliza una declaración de alcance reducido para aplicar el control de AWS WAF bots únicamente al contenido dinámico. 

La instrucción de restricción de acceso excluye el contenido estático al anular los resultados de las coincidencias de un conjunto de patrones de regex: 
+ El conjunto de patrones de regex está configurado para coincidir con las extensiones del *contenido estático*. Por ejemplo, la especificación del conjunto de patrones de regex podría ser `(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$`. Para obtener más información acerca de la administración de conjuntos de patrones de expresiones regulares e instrucciones , consulte [Instrucción de regla de coincidencia de conjuntos de patrones de regex](waf-rule-statement-type-regex-pattern-set-match.md). 
+ En la instrucción de restricción de acceso, excluimos el contenido estático coincidente anidando la instrucción del conjunto de patrones de regex dentro de una instrucción `NOT`. Para obtener información sobre la instrucción de `NOT`, consulte [Instrucción de reglas de NOT](waf-rule-statement-type-not.md).

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "RegexPatternSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/regexpatternset/excludeset/00000000-0000-0000-0000-000000000000",
            "FieldToMatch": {
              "UriPath": {}
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        }
      }
    }
  }
}
```

# Ejemplo de control de bots: exclusión de un rango de IP de la administración de bots
<a name="waf-bot-control-example-scope-down-ip"></a>

Si quieres excluir un subconjunto del tráfico web de la administración de AWS WAF Bot Control y puedes identificar ese subconjunto mediante una declaración de regla, entonces exclúyelo añadiendo una declaración de alcance reducido a la declaración del grupo de reglas gestionado por Bot Control. 

La siguiente regla realiza una administración normal de los bots de control de bots en todo el tráfico web, excepto en el caso de las solicitudes web procedentes de un rango de direcciones IP específico.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/ipset/friendlyips/00000000-0000-0000-0000-000000000000"
          }
        }
      }
    }
  }
}
```

# Ejemplo de control de bots: permisión del tráfico de un bot que usted controla
<a name="waf-bot-control-example-scope-down-your-bot"></a>

Puede configurar algunos bots de monitorización de sitios y bots personalizados para que envíen encabezados personalizados. Si quiere permitir el tráfico de estos tipos de bots, puede configurarlos para que añadan un secreto compartido en un encabezado. A continuación, puedes excluir los mensajes que tengan el encabezado añadiendo una declaración de alcance reducido a la declaración del grupo de reglas gestionado por AWS WAF Bot Control. 

El siguiente ejemplo de regla excluye el tráfico con un encabezado secreto de la inspección de control de bots.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "ByteMatchStatement": {
            "SearchString": "YSBzZWNyZXQ=",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "x-bypass-secret"
              }
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ],
            "PositionalConstraint": "EXACTLY"
          }
        }
      }
    }
  }
}
```

# Ejemplo de control de bots: habilitación de un nivel de inspección específico
<a name="waf-bot-control-example-targeted-inspection-level"></a>

Para mejorar el nivel de protección, puede habilitar el nivel de inspección específica en su grupo de reglas gestionado por AWS WAF Bot Control.

En el siguiente ejemplo, las características de machine learning están habilitadas. Puede desactivar este comportamiento si establece `EnableMachineLearning` en `false`.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "TARGETED",
            "EnableMachineLearning": true
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    }
  }
}
```

# Ejemplo de control de bots: utilizar dos instrucciones para limitar el uso del nivel de inspección objetivo
<a name="waf-bot-control-example-common-and-targeted-inspection-level"></a>

Para optimizar los costes, puede utilizar dos declaraciones de grupos de reglas gestionadas por AWS WAF Bot Control en su paquete de protección (ACL web), con niveles y alcances de inspección independientes. Por ejemplo, podría limitar la instrucción del nivel de inspección objetivo únicamente a los puntos de conexión de las aplicaciones más sensibles.

Las dos instrucciones del siguiente ejemplo tienen un alcance mutuamente excluyente. Sin esta configuración, una solicitud podría dar lugar a la facturación de dos evaluaciones del Control de bots.

**nota**  
El editor visual de la consola no admite varias instrucciones que hagan referencia a `AWSManagedRulesBotControlRuleSet`. En su lugar, utilice el editor JSON.

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
       "Name": "AWS-AWSBotControl-Common",
       "Priority": 5,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "COMMON"
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Common"
           },
           "ScopeDownStatement": {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "FieldToMatch": {
                      "UriPath": {}
                    },
                    "PositionalConstraint": "STARTS_WITH",
                    "SearchString": "/sensitive-endpoint",
                    "TextTransformations": [
                      {
                        "Type": "NONE",
                        "Priority": 0
                      }
                    ]
                  }
                }
              }
            }
        }
      },
      {
       "Name": "AWS-AWSBotControl-Targeted",
       "Priority": 6,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "TARGETED",
                   "EnableMachineLearning": true
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Targeted"
           },
           "ScopeDownStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "UriPath": {}
                  },
                  "PositionalConstraint": "STARTS_WITH",
                  "SearchString": "/sensitive-endpoint",
                  "TextTransformations": [
                    {
                      "Type": "NONE",
                      "Priority": 0
                    }
                  ]
                }
              }
            }
        }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```