

**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.

# Registro AWS WAF del tráfico del paquete de protección (ACL web)
<a name="logging"></a>

En esta sección se explican las opciones de registro de sus paquetes de AWS WAF protección (web ACLs). 

Puede habilitar el registro para obtener información detallada sobre el tráfico que analiza su ACL web. La información registrada incluye la hora en que se AWS WAF recibió una solicitud web de su AWS recurso, información detallada sobre la solicitud y detalles sobre las reglas con las que se ajustó la solicitud. Puede enviar los registros del paquete de protección (ACL web) a un grupo de CloudWatch registros de Amazon Logs, a un bucket de Amazon Simple Storage Service (Amazon S3) o a una transmisión de entrega de Amazon Data Firehose.

Además de los registros que puede habilitar para sus paquetes de protección (web ACLs), AWS también utiliza los registros de servicio del tráfico de sitios web o aplicaciones AWS WAF que procesa para respaldar y proteger la seguridad de AWS los clientes y los servicios.

**nota**  
La configuración de registros del paquete de protección (ACL web) solo afecta a los AWS WAF registros. En particular, la configuración de los campos redactados para el registro no afecta al muestreo de solicitudes ni a la recopilación de datos de Security Lake. Puede excluir campos de la recopilación o el muestreo mediante la configuración de la protección de datos del paquete de protección (ACL web). Aparte de la protección de datos, la recopilación de datos de Security Lake se configura por completo a través del servicio Security Lake. 

**Topics**
+ [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md)
+ [AWS WAF destinos de registro](logging-destinations.md)
+ [Configuración del registro de un paquete de protección (ACL web)](logging-management-configure.md)
+ [Cómo encontrar los registros de su paquete de protección (ACL web)](logging-management.md)
+ [Campos de registro para el tráfico del paquete de protección (ACL web)](logging-fields.md)
+ [Ejemplos de registro del tráfico del paquete de protección (ACL web)](logging-examples.md)

**Otras opciones de recopilación y análisis de datos**  
Además del registro, puede habilitar las siguientes opciones para la recopilación y el análisis de datos: 
+ **Amazon Security Lake**: puede configurar Security Lake para recopilar datos del paquete de protección (ACL web). Security Lake recopila datos de registros y eventos de diversos orígenes de para su normalización, análisis y administración. Para obtener información sobre esta opción, consulte [¿Qué es Amazon Security Lake?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) y [Recopilación de datos de AWS los servicios de](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html) la *guía del usuario de Amazon Security Lake*. 

  AWS WAF no le cobra por usar esta opción. Para obtener información sobre precios, consulte [Precios de Security Lake](https://aws.amazon.com/security-lake/pricing/) y [How Security Lake pricing is determined](https://docs.aws.amazon.com/security-lake/latest/userguide/estimating-costs.html) en la *guía del usuario de Amazon Security Lake*. 
+ **Muestreo de solicitudes**: puede configurar su paquete de protección (ACL web) para que muestree las solicitudes web que evalúa, a fin de hacerse una idea del tipo de tráfico que recibe su aplicación. Para obtener más información acerca de esta opción, consulte [Visualizar una muestra de solicitudes web](web-acl-testing-view-sample.md). 

# Precios para registrar la información de tráfico del paquete de protección (ACL web)
<a name="logging-pricing"></a>

En esta sección, se explican las consideraciones de precios que se deben tener en cuenta al usar los registros de tráfico del paquete de protección (ACL web).

Se le cobrará por registrar la información del tráfico del paquete de protección (ACL web) de acuerdo con los costos asociados a cada tipo de destino de registro. Estos cargos se suman a los cargos de uso de AWS WAF. Los costos pueden variar en función de factores como el tipo de destino que elija y la cantidad de datos que registre. 

A continuación, se proporcionan enlaces a la información de precios de cada tipo de destino de registro:
+ **CloudWatch Registros**: los cargos corresponden a la entrega de troncos vendidos. Consulta los [precios CloudWatch de Amazon Logs](https://aws.amazon.com/cloudwatch/pricing/). En el **nivel de pago**, selecciona la pestaña **Logs** y, a continuación, en **Vended Logs**, consulta la información sobre la **entrega a CloudWatch Logs**.
+ Depósitos de **Amazon S3**: los cargos de Amazon S3 son los cargos combinados por la entrega de CloudWatch registros vendidos a los cubos de Amazon S3 y por el uso de Amazon S3. 
  + Para Amazon S3, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/). 
  + Para obtener CloudWatch información sobre la entrega de registros vendidos a Amazon S3, consulte los [precios de Amazon CloudWatch Logs](https://aws.amazon.com/cloudwatch/pricing/). En **Nivel de pago**, seleccione la pestaña **Registros** y, a continuación, en **Registros vendidos**, consulte la información sobre el **Envío a S3**.
+ **Firehose**: consulte [Precios de Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/pricing/).

Para obtener información sobre AWS WAF los precios, consulte [AWS WAF Precios](https://aws.amazon.com/waf/pricing/). 

# AWS WAF destinos de registro
<a name="logging-destinations"></a>

En esta sección se describen los destinos de registro que puede elegir para los registros de AWS WAF . Cada sección proporciona instrucciones a fin de configurar el registro para el tipo de destino que incluye información sobre cualquier comportamiento específico del tipo de destino. Después de configurar el destino de registro, puede agregar especificaciones a la configuración de registro del paquete de protección (ACL web) para iniciar el registro en él.

**Topics**
+ [CloudWatch Registros](logging-cw-logs.md)
+ [Amazon S3](logging-s3.md)
+ [Firehose](logging-kinesis.md)

# Envío de registros de tráfico del paquete de protección (ACL web) a un grupo de CloudWatch registros de Amazon Logs
<a name="logging-cw-logs"></a>

En este tema se proporciona información para enviar los registros de tráfico del paquete de protección (ACL web) a un grupo de CloudWatch registros. 

**nota**  
Se le cobrará por el registro además de los cargos por su uso de AWS WAF. Para obtener información, consulte [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md).

Para enviar registros a Amazon CloudWatch Logs, debe crear un grupo de CloudWatch registros de registros. Cuando habilita el inicio de sesión AWS WAF, proporciona el ARN del grupo de registros. Después de habilitar el registro para su paquete de protección (ACL web), AWS WAF entrega los registros al grupo de CloudWatch registros en flujos de registros. 

Cuando usa CloudWatch Logs, puede explorar los registros de su paquete de protección (ACL web) en la AWS WAF consola. En la página del paquete de protección (ACL web), seleccione la pestaña **Información de registros**. Esta opción se suma a la información de registro que se proporciona para CloudWatch los registros a través de la CloudWatch consola. 

Configure el grupo de registros para los registros del paquete de AWS WAF protección (ACL web) en la misma región que el paquete de protección (ACL web) y con la misma cuenta que utilizó para administrar el paquete de protección (ACL web). Para obtener información sobre la configuración de un grupo de CloudWatch registros, consulte [Uso de grupos de registros y flujos de registros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

## Cuotas para CloudWatch los grupos de registros
<a name="logging-cw-logs-quotas"></a>

CloudWatch Logs tiene una cuota máxima de rendimiento predeterminada, que se comparte entre todos los grupos de registros de una región, y que puede solicitar que se aumente. Si sus requisitos de registro son demasiado altos para la configuración actual de rendimiento, verá las métricas de limitación para `PutLogEvents` de su cuenta. Para ver el límite en la consola de Service Quotas y solicitar un aumento, consulta la [ PutLogEvents cuota de CloudWatch Logs](https://console.aws.amazon.com/servicequotas/home/services/logs/quotas/L-7E1FAE88).

## Denominación de grupos de registro
<a name="logging-cw-logs-naming"></a>

Los nombres de sus grupos de registro deben empezar `aws-waf-logs-` por y terminar con el sufijo que desee, por ejemplo, `aws-waf-logs-testLogGroup2`.

El formato del ARN resultante es el siguiente: 

```
arn:aws:logs:Region:account-id:log-group:aws-waf-logs-log-group-suffix
```

Los flujos de registros tienen un formato similar al siguiente: 

```
Region_web-acl-name_log-stream-number
```

A continuación, se muestra un ejemplo de flujo de registro para el paquete de protección (ACL web) `TestWebACL` en la región `us-east-1`. 

```
us-east-1_TestWebACL_0
```

## Permisos necesarios para publicar CloudWatch registros en Logs
<a name="logging-cw-logs-permissions"></a>

La configuración del registro de tráfico del paquete de protección (ACL web) para un grupo de CloudWatch registros requiere la configuración de permisos que se describe en esta sección. Los permisos se configuran automáticamente cuando utiliza una de las políticas gestionadas de acceso AWS WAF completo, `AWSWAFConsoleFullAccess` o bien`AWSWAFFullAccess`. Si desea administrar un acceso más detallado a sus registros y AWS WAF recursos, puede configurar los permisos usted mismo. Para obtener información sobre la administración de permisos, consulte [Administración del acceso a AWS los recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la Guía del usuario de *IAM*. Para obtener información sobre las políticas administradas de AWS WAF , consulte [AWS políticas gestionadas para AWS WAF](security-iam-awsmanpol.md). 

Estos permisos le permiten cambiar la configuración de registro del paquete de protección (ACL web), configurar la entrega de CloudWatch registros para los registros y recuperar información sobre su grupo de registros. Estos permisos deben estar asociados al usuario que utilice para administrar AWS WAF. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "wafv2:PutLoggingConfiguration",
                "wafv2:DeleteLoggingConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow",
            "Sid": "LoggingConfigurationAPI"
        },
        {
            "Sid": "WebACLLoggingCWL",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

Cuando se permiten acciones en todos AWS los recursos, se indica en la política con una `"Resource"` configuración de`"*"`. Esto significa que las acciones están permitidas en todos los AWS recursos *compatibles con cada acción*. Por ejemplo, la acción `wafv2:PutLoggingConfiguration` solo se admite para registrar los recursos de configuración `wafv2`. 

# Envío de registros de tráfico del paquete de protección (ACL web) a un bucket de Amazon Simple Storage Service
<a name="logging-s3"></a>

En este tema, se proporciona información para enviar los registros de tráfico del paquete de protección (ACL web) a un bucket de Amazon S3. 

**nota**  
Se le cobrará por el registro además de los cargos por su uso de AWS WAF. Para obtener información, consulte [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md).

Para enviar los registros de tráfico del paquete de protección (ACL web) a Amazon S3, debe configurar un bucket de Amazon S3 desde la misma cuenta que usa para administrar el paquete de protección (ACL web) y asignarle un nombre al depósito que empiece por `aws-waf-logs-`. Cuando habilitas el inicio de sesión AWS WAF, indicas el nombre del bucket. Para obtener información acerca de la creación de un bucket de registro, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) en la *Guía del usuario de Amazon Simple Storage Service*.

Puede acceder a sus registros de Amazon S3 y analizarlos mediante el servicio de consultas interactivas de Amazon Athena. Athena facilita el análisis de datos directamente en Amazon S3 con SQL estándar. Con unas cuantas acciones Consola de administración de AWS, puede dirigir Athena a los datos almacenados en Amazon S3 y empezar a utilizar rápidamente el SQL estándar para ejecutar consultas ad hoc y obtener resultados. Para obtener más información, consulte [Consultas de AWS WAF registros](https://docs.aws.amazon.com/athena/latest/ug/waf-logs.html) en la guía del usuario de *Amazon Athena*. Para ver ejemplos adicionales de consultas de Amazon Athena, consulte [waf-log-sample-athenaaws-samples/](https://github.com/aws-samples/waf-log-sample-athena-queries) -queries en el sitio web. GitHub 

**nota**  
AWS WAF admite el cifrado con buckets de Amazon S3 para el tipo de clave clave Amazon S3 (SSE-S3) y para AWS Key Management Service (SSE-KMS). AWS KMS keys AWS WAF no admite el cifrado de AWS Key Management Service las claves administradas por. AWS

Los archivos de registro de su paquete de protección (ACL web) se publican en el bucket de Amazon S3 en intervalos de cinco minutos. Cada archivo de registro contiene registros de flujo del tráfico IP registrado en los cinco minutos anteriores.

El tamaño de archivo máximo de un archivo log es de 75 MB. Si el archivo de registro alcanza el límite de tamaño de archivo en el periodo de cinco minutos, el registro deja de agregar registros a este archivo, lo publica en el bucket de Amazon S3 y después crea un nuevo archivo de registro.

Los archivos log están comprimidos. Si abre los archivos de registro con la consola de Amazon S3, se descomprimen y se muestran las entradas de registro. Si descarga los archivos de registro, debe descomprimirlos para verlos.

Un único archivo de registro contiene entradas intercaladas con varios registros. Para ver todos los archivos de registro de un paquete de protección (ACL web), busque las entradas agregadas por el nombre del paquete de protección (ACL web), la región y el ID de su cuenta.

## Requisitos de nomenclatura y sintaxis
<a name="logging-s3-naming"></a>

Los nombres de los AWS WAF buckets para el registro deben empezar `aws-waf-logs-` y terminar con el sufijo que desee. Por ejemplo, `aws-waf-logs-LOGGING-BUCKET-SUFFIX`. 

**Ubicación del bucket**  
Las ubicaciones de los buckets utilizan la siguiente sintaxis: 

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/
```

**ARN de bucket**  
El formato del bucket tiene el siguiente formato de Nombre de recurso de Amazon (ARN): 

```
arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
```

**Ubicaciones de los buckets con prefijos**  
Si usa prefijos en el nombre de las claves de sus objetos para organizar los datos que almacena en sus depósitos, puede incluir sus prefijos en los nombres de los buckets de registro.

**nota**  
Esta opción no está disponible en la consola. Utilice AWS WAF APIs la CLI o AWS CloudFormation.

Para obtener información acerca del uso de prefijos en Amazon S3consulte [Organizar objetos usando prefijos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) en la *Guía para usuarios de Amazon Simple Storage Service*. 

Las ubicaciones de los buckets con prefijos utilizan la siguiente sintaxis: 

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/KEY-NAME-PREFIX/
```

**Carpetas de buckets y nombres de archivos**  
Dentro de sus grupos y siguiendo los prefijos que proporcione, sus AWS WAF registros se escriben en una estructura de carpetas determinada por su ID de cuenta, la región, el nombre del paquete de protección (ACL web) y la fecha y la hora. 

```
AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm
```

Dentro de las carpetas, los nombres de los archivos de registro siguen un formato similar: 

```
account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz
```

Las especificaciones de tiempo utilizadas en la estructura de carpetas y en el nombre del archivo de registro se ajustan a la especificación del formato de marca de tiempo `YYYYMMddTHHmmZ`.

A continuación, se muestra un archivo de registro de ejemplo en un bucket de Amazon S3 para un bucket llamado `aws-waf-logs-LOGGING-BUCKET-SUFFIX`. El Cuenta de AWS es. `11111111111` El paquete de protección (ACL web) es `TEST-WEBACL` y la región es `us-east-1`.

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
```

**nota**  
Los nombres de los cubos para el AWS WAF registro deben empezar `aws-waf-logs-` y terminar con cualquier sufijo que desee. 

## Permisos necesarios para publicar registros en Amazon S3
<a name="logging-s3-permissions"></a>

La configuración del registro de tráfico del paquete de protección (ACL web) para un bucket de Amazon S3 requiere la siguiente configuración de permisos. Configure estos permisos automáticamente cuando utiliza una de las políticas administradas de acceso completo de AWS WAF , `AWSWAFConsoleFullAccess` o `AWSWAFFullAccess`. Si quieres seguir gestionando el acceso a tus registros y AWS WAF recursos, puedes configurar estos permisos tú mismo. Para obtener más información sobre los permisos de administración, consulte [Administración de accesos para recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la *Guía del usuario de IAM*. Para obtener información sobre las políticas AWS WAF administradas, consulte[AWS políticas gestionadas para AWS WAF](security-iam-awsmanpol.md). 

Los siguientes permisos le permiten cambiar la configuración de registro del paquete de protección (ACL web) y configurar el envío de registros a su bucket de Amazon S3. Estos permisos deben estar asociados al usuario que utilice para administrar AWS WAF. 

**nota**  
Al configurar los permisos que se indican a continuación, es posible que veas errores en tus AWS CloudTrail registros que indiquen que se ha denegado el acceso, pero los permisos de AWS WAF registro son correctos. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Action":[
            "wafv2:PutLoggingConfiguration",
            "wafv2:DeleteLoggingConfiguration"
         ],
         "Resource":[
            "*"
         ],
         "Effect":"Allow",
         "Sid":"LoggingConfigurationAPI"
      },
    {                                                                                                                                                                
       "Sid":"WebACLLogDelivery",                                                                                                                                    
       "Action":[                                                                                                                                                    
          "logs:CreateLogDelivery",                                                                                                                                  
          "logs:DeleteLogDelivery"                                                                                                                                   
       ],                                                                                                                                                            
       "Resource": "*",                                                                                                                                              
       "Effect":"Allow"                                                                                                                                              
    },  
      {
         "Sid":"WebACLLoggingS3",
         "Action":[
            "s3:PutBucketPolicy",
            "s3:GetBucketPolicy"
         ],
         "Resource": [
         "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix"
         ],
         "Effect":"Allow"
      }
   ]
}
```

------

Cuando se permiten acciones en todos AWS los recursos, se indica en la política con una `"Resource"` configuración de`"*"`. Esto significa que las acciones están permitidas en todos los AWS recursos *compatibles con cada acción*. Por ejemplo, la acción `wafv2:PutLoggingConfiguration` solo se admite para registrar los recursos de configuración `wafv2`. 

De forma predeterminada, los buckets de Amazon S3 y los objetos que contienen son privados. Solo el propietario del bucket puede tener acceso al bucket y a los objetos almacenados en él. Sin embargo, el propietario del bucket puede conceder permisos de acceso a otros recursos y usuarios escribiendo una política de acceso.

Si el usuario que va a crear el registro es el propietario del bucket, se asocia automáticamente la siguiente política al bucket para conceder al registro permiso para publicar registros en el mismo. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AWSLogDeliveryWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/123456789012/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    },
    {
      "Sid": "AWSLogDeliveryAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
      "Condition": {
        "StringEquals": {
        "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    }
  ]
}
```

------

**nota**  
Los nombres de los cubos para el AWS WAF registro deben empezar `aws-waf-logs-` y terminar con el sufijo que desee. 

Si el usuario que va a crear el registro no es el propietario del bucket, o no tiene los permisos `GetBucketPolicy` y `PutBucketPolicy` para el bucket, se produce un error al crear el registro. En este caso, el propietario del bucket debe agregar manualmente la política anterior al bucket y especificar el ID de la cuenta de Cuenta de AWS del creador del registro. Para obtener más información, consulte [How Do I Add an S3 Bucket Policy?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) (¿Cómo agrego una política de bucket de S3?) en la *Guía del usuario de Amazon Simple Storage Service*. Si el bucket recibe registros de varias cuentas, agregue un entrada del elemento `Resource` a la instrucción `AWSLogDeliveryWrite` de la política para cada cuenta. 

Por ejemplo, la siguiente política de compartimentos Cuenta de AWS `111122223333` permite publicar registros en un depósito denominado`aws-waf-logs-LOGGING-BUCKET-SUFFIX`:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/111122223333/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                    "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        }
    ]
}
```

------

**nota**  
En algunos casos, es posible que aparezcan errores de `AccessDenied` en AWS CloudTrail si no se ha otorgado el permiso `s3:ListBucket` a `delivery.logs.amazonaws.com`. Para evitar estos errores en sus CloudTrail registros, debe conceder el `s3:ListBucket` permiso `delivery.logs.amazonaws.com` e incluir `Condition` los parámetros que se muestran con el `s3:GetBucketAcl ` permiso establecido en la política de bucket anterior. Para simplificar esto, en lugar de crear una nueva `Statement`, puede actualizar directamente `AWSLogDeliveryAclCheck` para que sea `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`.

## Permisos para su uso AWS Key Management Service con una clave KMS
<a name="logging-s3-permissions-encrypt-kms"></a>

Si el destino del registro usa el cifrado del lado del servidor con claves almacenadas en AWS Key Management Service (SSE-KMS) y usted usa una clave administrada por el cliente (clave KMS), debe dar AWS WAF permiso para usar su clave KMS. Para ello, añada una política de claves a la clave KMS del destino que elija. Esto permite que el registro de AWS WAF escriba los archivos de registro en el destino. 

Añada la siguiente política clave a su clave de KMS AWS WAF para poder iniciar sesión en su bucket de Amazon S3.

```
{
    "Sid": "Allow AWS WAF to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "delivery.logs.amazonaws.com"
        ]
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

## Permisos requeridos para acceder a los archivos de registro de Amazon S3
<a name="logging-s3-log-file-access"></a>

Amazon S3 usa listas de control de acceso (ACLs) para administrar el acceso a los archivos de registro creados por un AWS WAF registro. De forma predeterminada, el propietario del bucket tiene los permisos `FULL_CONTROL` en cada archivo log. El propietario de la entrega de logs, si es diferente del propietario del bucket, no tiene permisos. La cuenta de entrega de registros tiene los permisos `READ` y `WRITE`. Para obtener más información, consulte [Access Control List (ACL) Overview](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) (Información general de la Lista de control de acceso [ACL]) en la *Guía del usuario de Amazon Simple Storage Service*.

# Envío de registros de tráfico del paquete de protección (ACL web) a un flujo de entrega de Amazon Data Firehose
<a name="logging-kinesis"></a>

Esta sección proporciona información para enviar los registros de tráfico del paquete de protección (ACL web) a un flujo de entrega de Amazon Data Firehose. 

**nota**  
Se le cobrará por el registro además de los cargos por su uso de AWS WAF. Para obtener información, consulte [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md).

Para enviar registros a Amazon Data Firehose, debe enviar los registros desde su paquete de protección (ACL web) a un flujo de entrega de Amazon Data Firehose que configura en Firehose. Después de habilitar el registro, AWS WAF entrega los registros a su destino de almacenamiento a través del punto de conexión HTTPS de Firehose. 

Un AWS WAF registro equivale a un registro de Firehose. Si suele recibir 10 000 solicitudes por segundo y habilita registros completos, debería tener una configuración de 10 000 registros por segundo en Firehose. Si no configuras Firehose correctamente, no AWS WAF registrará todos los registros. Para obtener más información, consulte [Amazon Kinesis Data Firehose quotas](https://docs.aws.amazon.com/firehose/latest/dev/limits.html). 

Para obtener información acerca de cómo crear un flujo de entrega de Amazon Data Firehose y revisar los registros almacenados, consulte [¿Qué es Amazon Data Firehose?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 

Para obtener más información sobre cómo crear su flujo de entrega, consulte [Creating an Amazon Data Firehose delivery stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html).

## Configuración de un flujo de entrega de Amazon Data Firehose para su paquete de protección (ACL web)
<a name="logging-kinesis-configuration"></a>

Configure un flujo de entrega de Amazon Data Firehose para su paquete de protección (ACL web) de la siguiente forma.
+ Créelo con la misma cuenta que usa para administrar el paquete de protección (ACL web).
+ Créelo en la misma región que el paquete de protección (ACL web). Si está capturando troncos para Amazon CloudFront, cree la manguera de incendios en la región EE.UU. Este (Norte de Virginia),`us-east-1`.
+ Asigne a Data Firehose un nombre que comience con el prefijo `aws-waf-logs-`. Por ejemplo, `aws-waf-logs-us-east-2-analytics`.
+ Configúrela para la colocación directa, lo que permite a las aplicaciones acceder directamente al flujo de envío. En la [consola de Amazon Data Firehose](https://console.aws.amazon.com/firehose), para la configuración del **Origen** del flujo de entrega, elija **PUT directo y otros orígenes**. A través de la API, defina la propiedad `DeliveryStreamType` de flujo de envío en `DirectPut`.
**nota**  
No utilice `Kinesis stream` como origen.

## Permisos necesarios para publicar registros en un flujo de entrega de Amazon Data Firehose
<a name="logging-kinesis-permissions"></a>

Para conocer los permisos necesarios para la configuración de Kinesis Data Firehose, consulte [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html).

Debe tener los siguientes permisos para habilitar correctamente el registro del paquete de protección (ACL web) con un flujo de entrega de Amazon Data Firehose.
+ `iam:CreateServiceLinkedRole`
+ `firehose:ListDeliveryStreams`
+ `wafv2:PutLoggingConfiguration`

Para obtener información acerca de los roles vinculados a servicios y el permiso `iam:CreateServiceLinkedRole`, consulte [Uso de roles vinculados a servicios para AWS WAF](using-service-linked-roles.md).

# Configuración del registro de un paquete de protección (ACL web)
<a name="logging-management-configure"></a>

En esta sección, se proporcionan instrucciones para configurar la protección de datos para un paquete de protección (ACL web).

**nota**  
Se le cobrará por el registro además de los cargos por su uso de AWS WAF. Para obtener información, consulte [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md).

Para habilitar el registro de un paquete de protección (ACL web), es necesario haber configurado el destino de registro que va a usar. Para obtener información sobre las opciones de destino y los requisitos de cada una de ellas, consulte [AWS WAF destinos de registro](logging-destinations.md).

**Configuración del registro de un paquete de protección (ACL web)**

1. Inicie sesión Consola de administración de AWS y abra la AWS WAF consola en [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2). 

1. En el panel de navegación, selecciona los **paquetes de protección (web ACLs)**.

1. Elija el nombre del paquete de protección (ACL web) para la que desea habilitar el registro. La consola lo lleva a la descripción del paquete de protección (ACL web), donde puede editarla.

1. En la pestaña **Registro y métricas**, elija **Habilitar el registro**.

1. Elija el tipo de destino del registro y, a continuación, elija el destino del registro que haya configurado. Debe elegir un destino de registro cuyo nombre comience con `aws-waf-logs-`.

1. (Opcional) Si no quiere que se incluyan algunos campos en los registros, redáctelos. Elija el campo que se va a redactar y, a continuación, elija **Add (Añadir)**. Repita según sea necesario para redactar campos adicionales. Los campos redactados aparecen como `xxx` en los registros.
**nota**  
Esta configuración no afecta al muestreo de solicitudes. Puede excluir los campos del muestreo de solicitudes mediante la configuración de la protección de datos del paquete de protección (ACL web) o la inhabilitación del muestreo del paquete de protección (ACL web). 

1. (Opcional) Si no desea enviar todas las solicitudes a los registros, agregue sus criterios de filtrado y su comportamiento. En **Filtrar registros**, para cada filtro que desee aplicar, elija **Agregar filtro** y, a continuación, elija sus criterios de filtrado y especifique si desea conservar o eliminar las solicitudes que coincidan con los criterios. Cuando termine de añadir filtros, si es necesario, modifique el **comportamiento de registro predeterminado**. 
**nota**  
Si añade varios filtros, AWS WAF los evalúa empezando por arriba.

1. Elija **Enable logging (Habilitar el registro)**.
**nota**  
Cuando habilites correctamente el registro, AWS WAF se creará un rol vinculado al servicio con los permisos necesarios para escribir los registros en el destino del registro. Para obtener más información, consulte [Uso de roles vinculados a servicios para AWS WAF](using-service-linked-roles.md).

# Cómo encontrar los registros de su paquete de protección (ACL web)
<a name="logging-management"></a>

En esta sección se explica cómo buscar los registros de su paquete de protección (ACL web).

**nota**  
Se le cobrará por el registro además de los cargos por su uso de AWS WAF. Para obtener información, consulte [Precios para registrar la información de tráfico del paquete de protección (ACL web)](logging-pricing.md).

**Si no puede encontrar una entrada de registro en sus registros**  
En raras ocasiones, es posible que la entrega de AWS WAF troncos caiga por debajo del 100%, y que los troncos se entreguen haciendo todo lo posible. La AWS WAF arquitectura prioriza la seguridad de las aplicaciones por encima de todas las demás consideraciones. En algunas situaciones, como cuando los flujos de registro sufren una limitación del tráfico, puede haber una pérdida de registros. Esto no debería afectar a muchos registros. Si observa que faltan varias entradas de registro, póngase en contacto con el [Centro de AWS Support](https://console.aws.amazon.com/support/home#/).

En la configuración de registro de su paquete de protección (ACL web), puede personalizar lo que se AWS WAF envía a los registros.
+ **Redacción de campos**: puede redactar los siguientes campos de los registros para las reglas que utilizan la configuración de coincidencia correspondiente: **ruta de URI**, **cadena de consulta**, **encabezado único** y **método HTTP**. Los campos redactados aparecen como `REDACTED` en los registros. Por ejemplo, si redacta el campo de **cadena de consulta**, en los registros, aparecerá como `REDACTED` para todas las reglas que utilizan la configuración del componente de coincidencia de **cadena de consulta**. La redacción solo se aplica al componente de solicitud que especifique para que coincida en la regla, por lo que la redacción del componente de **encabezado único** no se aplica a las reglas que coinciden con los **encabezados**. Para obtener una lista de los campos de registro, consulte [Campos de registro para el tráfico del paquete de protección (ACL web)](logging-fields.md).
**nota**  
Esta configuración no afecta al muestreo de solicitudes. Puede excluir los campos del muestreo de solicitudes mediante la configuración de la protección de datos del paquete de protección (ACL web) o la inhabilitación del muestreo del paquete de protección (ACL web). 
+ **Filtrado de registros**: puede agregar filtros para especificar qué solicitudes web se conservan en los registros y cuáles se eliminan. Puede filtrar los ajustes que AWS WAF se aplican durante la evaluación de la solicitud web. Puede añadir filtros según las siguientes configuraciones: 
  + **Etiqueta completa**: las etiquetas completas tienen un prefijo, espacios de nombres opcionales y un nombre de etiqueta. El prefijo identifica el grupo de reglas o el contexto del paquete de protección (ACL web) de la regla que agregó la etiqueta. Para obtener información acerca de las etiquetas, consulte [Etiquetado de solicitudes web en AWS WAF](waf-labels.md).
  + **Acción de regla**: puede filtrar por cualquier configuración de acción de regla normal y también por la opción de anulación `EXCLUDED_AS_COUNT` heredada para las reglas de los grupos de reglas. Para obtener información sobre la configuración de las acciones de las reglas, consulte [Uso de acciones de reglas en AWS WAF](waf-rule-action.md). Para obtener información sobre las anulaciones de acciones de regla actuales y heredadas para las reglas de grupos de reglas, consulte [Supervisar las acciones de un grupo de reglas en AWS WAF](web-acl-rule-group-override-options.md). 
    + Los filtros de acción de regla normales se aplican a las acciones que se configuran en las reglas y también a las acciones que se configuran mediante la opción actual para anular una acción de regla de un grupo de reglas. 
    + El filtro de registro `EXCLUDED_AS_COUNT` se superpone con el filtro de registro de acciones `Count`. `EXCLUDED_AS_COUNT` filtra las opciones actuales y heredadas para anular la acción de una regla de un grupo de reglas a Count. 

# Campos de registro para el tráfico del paquete de protección (ACL web)
<a name="logging-fields"></a>

En la siguiente lista se describen los posibles campos del registro. 

**acción**  
La acción de finalización que AWS WAF se aplicó a la solicitud. Esto indica permitir, bloquear, CAPTCHA o desafío. Las acciones CAPTCHA y Challenge son de finalización cuando la solicitud web no contiene un token válido.

**args**  
La cadena de consulta.

**captchaResponse**  
El estado de la acción del CAPTCHA para la solicitud se rellena cuando se aplica una acción CAPTCHA a la solicitud. Este campo se rellena para cualquier acción CAPTCHA, ya sea de terminación o no. Si en una solicitud se aplica la acción CAPTCHA varias veces, este campo se rellena desde la última vez que se aplicó la acción.   
La acción CAPTCHA finaliza la inspección de la solicitud web cuando la solicitud no incluye un token o si el token no es válido o ha vencido. Si la acción CAPTCHA está terminada, este campo incluye un código de respuesta y un motivo de error. Si la acción no está terminada, este campo incluye una marca de tiempo de resolución. Para diferenciar entre una acción terminada y una que no lo está, puede filtrar para ver un atributo `failureReason` que no esté vacío en este campo.

**cfDistributionTenantID**  
El identificador del arrendatario de CloudFront distribución asociado a la solicitud web. Este campo es opcional y solo se aplica a los paquetes de protección (web ACLs) asociados a los arrendatarios CloudFront de distribución.

**challengeResponse**  
El estado de la acción de desafío para la solicitud se rellena cuando se aplica una acción Challenge a la solicitud. Este campo se rellena para cualquier acción Challenge, ya sea de terminación o no. Si en una solicitud se aplica la acción Challenge varias veces, este campo se rellena desde la última vez que se aplicó la acción.   
La acción Challenge finaliza la inspección de la solicitud web cuando la solicitud no incluye un token o si el token no es válido o ha vencido. Si la acción Challenge está terminada, este campo incluye un código de respuesta y un motivo de error. Si la acción no está terminada, este campo incluye una marca de tiempo de resolución. Para diferenciar entre una acción terminada y una que no lo está, puede filtrar para ver un atributo `failureReason` que no esté vacío en este campo.

**clientAsn**  
El número de sistema autónomo (ASN) asociado a la dirección IP del origen de la solicitud web.  
**ClientASN** inicia sesión en AWS WAF los registros solo cuando se utiliza una sentencia de coincidencia de ASN. De lo contrario, este campo no se registra.

**clientIp**  
La dirección IP del cliente que envía la solicitud.

**country**  
El país de origen de la solicitud. Si AWS WAF no puede determinar el país de origen, establece este campo en. `-` 

**country**  
El país de origen de la solicitud. Si AWS WAF no puede determinar el país de origen, establece este campo en`-`. 

**excludedRules**  
Se usa solo para reglas del grupo de reglas. La lista de reglas del grupo de reglas que ha excluido. La acción para estas reglas se establece en Count.   
Si anula una regla para contabilizarla mediante la opción de acción de anular regla, las coincidencias no se muestran aquí. Se muestran como parejas de acción `action` y `overriddenAction`.    
exclusionType  
Un tipo que indica que la regla excluida tiene la acción Count.  
ruleId  
El ID de la regla del grupo de reglas que se ha excluido.

**formatVersion**  
La versión de formato para el registro.

**forwardedAsn**  
El número de sistema autónomo (ASN) asociado a la dirección IP de la entidad que reenvió la solicitud web.

**headers**  
La lista de encabezados.

**httpMethod**  
El método HTTP en la solicitud.

**httpRequest**  
Los metadatos sobre la solicitud.

**httpSourceId**  
El identificador del recurso asociado:   
+ En el caso de una CloudFront distribución de Amazon, el ID es el que `distribution-id` aparece en la sintaxis del ARN: 

  `arn:partitioncloudfront::account-id:distribution/distribution-id` 
+ En el caso de un Equilibrador de carga de aplicación, el identificador corresponde al `load-balancer-id` en la sintaxis del ARN: 

  `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id`
+ En el caso de una API de REST de Amazon API Gateway, el identificador corresponde al `api-id` en la sintaxis del ARN: 

  `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name`
+ Para una API de AWS AppSync GraphQL, el ID es el de `GraphQLApiId` la sintaxis del ARN: 

  `arn:partition:appsync:region:account-id:apis/GraphQLApiId`
+ En el caso de un grupo de usuarios de Amazon Cognito, el identificador corresponde al `user-pool-id` en la sintaxis del ARN: 

  `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id`
+ Para un AWS App Runner servicio, el ID es el de `apprunner-service-id` la sintaxis del ARN: 

  `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id`

**httpSourceName**  
El origen de la solicitud. Valores posibles: `CF` para Amazon CloudFront, `APIGW` para Amazon API Gateway, `ALB` para Application Load Balancer, `APPSYNC` para Amazon Cognito AWS AppSync`APPRUNNER`, `COGNITOIDP` para App Runner `VERIFIED_ACCESS` y para Verified Access.

**httpVersion**  
La versión de HTTP.

**ja3Fingerprint**  
La JA3 huella digital de la solicitud.  
JA3 la inspección de huellas dactilares solo está disponible para CloudFront las distribuciones de Amazon y los balanceadores de carga de aplicaciones.
La JA3 huella digital es un hash de 32 caracteres derivado del protocolo TLS Hello de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de TLS Client Hello para el cálculo.   
Este valor se proporciona al configurar una coincidencia de JA3 huellas digitales en las reglas del paquete de protección (ACL web). Para obtener información sobre cómo crear una coincidencia con la JA3 huella digital, consulte [JA3 huella digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint) [Solicita componentes en AWS WAF](waf-rule-statement-fields-list.md) la declaración de reglas.

**ja4Fingerprint**  
La JA4 huella digital de la solicitud.  
JA4 la inspección de huellas dactilares solo está disponible para CloudFront las distribuciones de Amazon y los balanceadores de carga de aplicaciones.
La JA4 huella digital es un hash de 36 caracteres derivado del protocolo TLS Hello de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de TLS Client Hello para el cálculo.   
Este valor se proporciona al configurar una coincidencia de JA4 huellas digitales en las reglas del paquete de protección (ACL web). Para obtener información sobre cómo crear una coincidencia con la JA4 huella digital, consulte [JA4 huella digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint) [Solicita componentes en AWS WAF](waf-rule-statement-fields-list.md) la declaración de reglas.

**etiquetas**  
Las etiquetas de la solicitud web. Estas etiquetas se aplicaban mediante reglas que se utilizaban para evaluar la solicitud. AWS WAF registra las 100 primeras etiquetas. 

**nonTerminatingMatchingReglas**  
La lista de reglas de no terminación que coincidieron con la solicitud. Cada elemento en la lista contiene la siguiente información.     
acción  
La acción que AWS WAF se aplicó a la solicitud. Esto indica el recuento, el CAPTCHA o el desafío. Las CAPTCHA y Challenge son de no finalización cuando la solicitud web contiene un token válido.  
ruleId  
El ID de la regla que coincide con la solicitud y no era de finalización.   
ruleMatchDetails  
Información detallada sobre la regla que coincide con la solicitud. Este campo solo se rellena para las instrucciones de reglas de coincidencia de inyección de código SQL y scripting entre sitios (XSS). Una regla de coincidencia puede requerir una coincidencia para más de un criterio de inspección, por lo que estos detalles de coincidencia se proporcionan como una matriz de criterios de coincidencia. 
La información adicional proporcionada para cada regla varía en función de factores como la configuración de la regla, el tipo de coincidencia de la regla y los detalles de la coincidencia. Por ejemplo, en el caso de las reglas con una acción CAPTCHA o Challenge, se mostrará la `captchaResponse` o `challengeResponse`. Si la regla coincidente está en un grupo de reglas y anuló la acción de regla configurada, la acción configurada aparecerá en `overriddenAction`. 

**oversizeFields**  
La lista de campos de la solicitud web que fueron inspeccionados por el paquete de protección (ACL web) y que superan el límite de AWS WAF inspección. Si un campo es demasiado grande pero el paquete de protección (ACL web) no lo inspecciona, no aparecerá aquí.   
Esta lista puede contener cero o más de los siguientes valores: `REQUEST_BODY`, `REQUEST_JSON_BODY`, `REQUEST_HEADERS` y `REQUEST_COOKIES`. Para obtener más información acerca de los campos sobredimensionados, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md).

**rateBasedRuleLista**  
La lista de reglas basadas en frecuencia que actuaron en la solicitud. Para obtener información acerca de las reglas basadas en tasas, consulte [Uso de declaraciones de reglas basadas en tasas en AWS WAF](waf-rule-statement-type-rate-based.md).    
rateBasedRuleID  
El ID de la regla basada en frecuencia que actuó en la solicitud. Si esto ha terminado la solicitud, el ID de `rateBasedRuleId` es el mismo que el ID de `terminatingRuleId`.  
rateBasedRuleNombre  
El nombre de la regla basada en tasas que actuó en la solicitud.   
limitKey  
El tipo de agregación que utiliza la regla. Los valores posibles son `IP` para el origen de la solicitud web, `FORWARDED_IP` para una IP reenviada en un encabezado de la solicitud, `CUSTOMKEYS` para la configuración personalizada de las claves agregadas y `CONSTANT` para el recuento conjunto de todas las solicitudes, sin agregación.   
limitValue  
Se usa solo cuando se limita la tasa a un solo tipo de dirección IP. Si una solicitud contiene una dirección IP que no es válida, el `limitvalue` es `INVALID`.  
maxRateAllowed  
El número máximo de solicitudes permitido en el período especificado para una instancia de agregación específica. La instancia de agregación se define mediante la `limitKey` sumado a cualquier especificación clave adicional que haya proporcionado en la configuración de la regla basada en tasas.   
evaluationWindowSec  
La cantidad de tiempo AWS WAF incluida en su solicitud cuenta, en segundos.   
customValues  
Valores únicos identificados por la regla basada en tasas de la solicitud. En el caso de los valores de cadena, los registros imprimen los primeros 32 caracteres del valor de cadena. Según el tipo de clave, estos valores pueden ser solo para una clave, como para un método HTTP o una cadena de consulta, o pueden ser para una clave y un nombre, como para el encabezado y el nombre del encabezado. 

**requestHeadersInserted**  
La lista de encabezados insertados para la gestión personalizada de las solicitudes.

**ID de solicitud**  
El ID de la solicitud, que es generado por el servicio de alojamiento subyacente. Para el equilibrador de carga de aplicación, este es el identificador de rastro. Para el resto, este el el identificador de la solicitud. 

**responseCodeSent**  
El código de respuesta enviado con una respuesta personalizada.

**ruleGroupId**  
El ID del grupo de reglas. Si la regla bloqueó la solicitud, el ID de `ruleGroupID` es el mismo que el ID de `terminatingRuleId`. 

**ruleGroupList**  
La lista de grupos de reglas que actuaron en esta solicitud, que coinciden con la información.

**terminatingRule**  
La regla que terminó la solicitud. Si esta regla está presente, contiene la siguiente información.     
acción  
La acción de finalización que AWS WAF se aplicó a la solicitud. Esto indica permitir, bloquear, CAPTCHA o desafío. Las acciones CAPTCHA y Challenge son de finalización cuando la solicitud web no contiene un token válido.  
ruleId  
El identificador de la regla que coincide con la solicitud.   
ruleMatchDetails  
Información detallada sobre la regla que coincide con la solicitud. Este campo solo se rellena para las instrucciones de reglas de coincidencia de inyección de código SQL y scripting entre sitios (XSS). Una regla de coincidencia puede requerir una coincidencia para más de un criterio de inspección, por lo que estos detalles de coincidencia se proporcionan como una matriz de criterios de coincidencia. 
La información adicional proporcionada para cada regla varía en función de factores como la configuración de la regla, el tipo de coincidencia de la regla y los detalles de la coincidencia. Por ejemplo, en el caso de las reglas con una acción CAPTCHA o Challenge, se mostrará la `captchaResponse` o `challengeResponse`. Si la regla coincidente está en un grupo de reglas y anuló la acción de regla configurada, la acción configurada aparecerá en `overriddenAction`. 

**terminatingRuleId**  
El ID de la regla que terminó la solicitud. Si nada termina la solicitud, el valor es `Default_Action`.

**terminatingRuleMatchDetalles**  
Información detallada sobre la regla de finalización que coincide con la solicitud. Una regla de finalización tiene una acción que finaliza el proceso de inspección ante una solicitud web. Entre las posibles acciones de una regla de finalización se incluyen Allow, Block, CAPTCHA y Challenge. Durante la inspección de una solicitud web, la primera regla que coincida con la solicitud y que tenga una acción de finalización, AWS WAF detiene la inspección y aplica la acción. La solicitud web puede contener otras amenazas, además de la que aparece en el registro de la regla de finalización coincidente.  
Esto solo se rellena para las instrucciones de reglas de coincidencia de inyección de código SQL y scripting entre sitios (XSS). La regla de coincidencia puede requerir una coincidencia para más de un criterio de inspección, por lo que estos detalles de coincidencia se proporcionan como una matriz de criterios de coincidencia. 

**terminatingRuleType**  
El tipo de regla que terminó la solicitud. Valores posibles: RATE\$1BASED, REGULAR, GROUP y MANAGED\$1RULE\$1GROUP.

**timestamp**  
La marca de tiempo en milisegundos.

**uri**  
El URI de la solicitud. 

**fragment**  
La parte de una URL que sigue al símbolo “\$1” y que proporciona información adicional sobre el recurso, por ejemplo, \$1section2.

**webaclId**  
El GUID del paquete de protección (ACL web).

# Ejemplos de registro del tráfico del paquete de protección (ACL web)
<a name="logging-examples"></a>

En esta sección, se proporcionan ejemplos para registrar el tráfico del paquete de protección (ACL web).

**Example Regla basada en tasas 1: configuración de la regla con una clave, establecida en `Header:dogname`**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example Regla basada en tasas 1: entrada de registro de la solicitud bloqueada por la regla basada en tasas**  

```
{
   "timestamp":1683355579981,
   "formatVersion":1,
   "webaclId": ...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId": ...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.45",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.45"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"rjvegx5guh.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-645566cf-7cb058b04d9bb3ee01dc4036"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"RateBasedRuleTestKoipOneKeyModulePV2"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"Ed0AiHF_CGYF-DA="
   }
}
```

**Example Regla basada en tasas 2: configuración de la regla con dos claves, establecidas en `Header:dogname` y `Header:catname`**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            },
            {
              "Header": {
                "Name": "catname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example Regla basada en tasas 2: entrada de registro de la solicitud bloqueada por la regla basada en tasas**  

```
{
   "timestamp":1633322211194,
   "formatVersion":1,
   "webaclId":...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId":...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            },
            {
               "key":"HEADER",
               "name":"catname",
               "value":"goofie"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.35",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.35"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"23llbyn8v3.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-64556629-17ac754c2ed9f0620e0f2a0c"
         },
         {
            "name":"catname",
            "value":"goofie"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"Apache-HttpClient/UNAVAILABLE (Java/11.0.19)"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"EdzmlH5OCGYF1vQ="
   }
}
```

**Example Salida de registro de una regla que se activó al SQLi detectarse (finalizar)**  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:111122223333:regional/webacl/STMTest/1EXAMPLE-2ARN-3ARN-4ARN-123456EXAMPLE",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "HEADER",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "-",
    "httpSourceId": "-",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [
            {
                "name": "Host",
                "value": "localhost:1989"
            },
            {
                "name": "User-Agent",
                "value": "curl/7.61.1"
            },
            {
                "name": "Accept",
                "value": "*/*"
            },
            {
                "name": "x-stm-test",
                "value": "10 AND 1=1"
            }
        ],
        "uri": "/myUri",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example Resultado de registro de una regla que se activó al SQLi detectarse (sin finalizar)**  

```
{
    "timestamp":1592357192516
    ,"formatVersion":1
    ,"webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"Default_Action"
    ,"terminatingRuleType":"REGULAR"
    ,"action":"ALLOW"
    ,"terminatingRuleMatchDetails":[]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":[]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":
    [{
        "ruleId":"TestRule"
        ,"action":"COUNT"
        ,"ruleMatchDetails":
        [{
            "conditionType":"SQL_INJECTION"
            ,"sensitivityLevel": "HIGH"
            ,"location":"HEADER"
            ,"matchedData":[
                "10"
                ,"and"
                ,"1"]
            }]
    }]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":[
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader","myValue":"10 AND 1=1"}
            ]
            ,"uri":"/myUri","args":""
            ,"httpVersion":"HTTP/1.1"
            ,"httpMethod":"GET"
            ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example Resultado de registro de varias reglas que se activaron dentro de un grupo de reglas (RuleA-XSS es de finalización y la Rule-B, no)**  

```
{
    "timestamp":1592361810888,
    "formatVersion":1,
    "webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"RG-Reference"
    ,"terminatingRuleType":"GROUP"
    ,"action":"BLOCK",
    "terminatingRuleMatchDetails":
    [{
        "conditionType":"XSS"
        ,"location":"HEADER"
        ,"matchedData":["<","frameset"]
    }]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":
    [{
        "ruleGroupId":"arn:aws:wafv2:us-east-1:123456789012:global/rulegroup/hello-world/c05lb698-1f11-4m41-aef4-99a506d53f4b"
        ,"terminatingRule":{
            "ruleId":"RuleA-XSS"
            ,"action":"BLOCK"
            ,"ruleMatchDetails":null
            }
        ,"nonTerminatingMatchingRules":
        [{
            "ruleId":"RuleB-SQLi"
            ,"action":"COUNT"
            ,"ruleMatchDetails":
            [{
                "conditionType":"SQL_INJECTION"
                ,"sensitivityLevel": "LOW"
                ,"location":"HEADER"
                ,"matchedData":[
                    "10"
                    ,"and"
                    ,"1"]
            }]
        }]
        ,"excludedRules":null
    }]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":[]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":
        [
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader1","value":"<frameset onload=alert(1)>"}
            ,{"name":"myHeader2","value":"10 AND 1=1"}
            ]
        ,"uri":"/myUri"
        ,"args":""
        ,"httpVersion":"HTTP/1.1"
        ,"httpMethod":"GET"
        ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example Resultado de registro de una regla que se activó para inspeccionar el cuerpo de la solicitud con el tipo de contenido JSON**  
AWS WAF actualmente informa que la ubicación de la inspección corporal en JSON es. `UNKNOWN`  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:123456789012:regional/webacl/test/111",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "LOW",
            "location": "UNKNOWN",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "ALB",
    "httpSourceId": "alb",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted":null,
    "responseCodeSent":null,
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [],
        "uri": "",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "POST",
        "requestId": "null"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example Resultado de registro de una regla de CAPTCHA para una solicitud web con un token de CAPTCHA válido y vigente**  
La siguiente lista de registros corresponde a una solicitud web que asoció una regla con una acción CAPTCHA. La solicitud web tiene un token de CAPTCHA válido y no caducado, y solo se anota cuando coincide con el CAPTCHA AWS WAF, de forma similar al comportamiento de la acción. Count Esta coincidencia de CAPTCHA se indica en `nonTerminatingMatchingRules`.  

```
{
  "timestamp": 1632420429309,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "Default_Action",
  "terminatingRuleType": "REGULAR",
  "action": "ALLOW",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [
    {
      "ruleId": "captcha-rule",
      "action": "CAPTCHA",
      "ruleMatchDetails": [],
      "captchaResponse": {
        "responseCode": 0,
        "solveTimestamp": 1632420429
      }
    }
  ],
  "requestHeadersInserted": [
    {
      "name": "x-amzn-waf-test-header-name",
      "value": "test-header-value"
    }
  ],
  "responseCodeSent": null,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc24d-5ad89a09181910c43917a888"
      },
      {
        "name": "cache-control",
        "value": "max-age=0"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "same-origin"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "referer",
        "value": "https://b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com/pen-test/pets"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      },
      {
        "name": "cookie",
        "value": "aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINMHHUgoAMFxug="
  }
}
```

**Example Resultado de registro de una regla de CAPTCHA para una solicitud web que no tiene un token de CAPTCHA**  
La siguiente lista de registros corresponde a una solicitud web que asoció una regla con una acción CAPTCHA. La solicitud web no tenía un token CAPTCHA y estaba bloqueada por. AWS WAF  

```
{
  "timestamp": 1632420416512,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "captcha-rule",
  "terminatingRuleType": "REGULAR",
  "action": "CAPTCHA",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [],
  "requestHeadersInserted": null,
  "responseCodeSent": 405,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc240-18b57ff33c10e5c016b508c5"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "cross-site"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINKHEssoAMFsrg="
  },
  "captchaResponse": {
    "responseCode": 405,
    "solveTimestamp": 0,
    "failureReason": "TOKEN_MISSING"
  }
}
```