Envío de registros de tráfico de la ACL web a un bucket de Amazon Simple Storage Service - AWS WAF, AWS Firewall Manager, y AWS Shield Advanced

Envío de registros de tráfico de la ACL web a un bucket de Amazon Simple Storage Service

En este tema se proporciona información para enviar los registros de tráfico de 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 más información, consulte Precios para registrar la información de tráfico de la ACL web.

Para enviar los registros de tráfico de la ACL web a Amazon S3, debe configurar un bucket de Amazon S3 desde la misma cuenta que utiliza para gestionar la ACL web y asignarle un nombre al depósito que empiece por aws-waf-logs-. Cuando habilita el registro en AWS WAF, proporciona el nombre del bucket. Para obtener información acerca de la creación de un bucket de registro, consulte Crear un bucket 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 pocas acciones en la AWS Management Console, puede apuntar Athena a los datos almacenados en Amazon S3 y comenzar a utilizar SQL estándar rápidamente para ejecutar consultas ad hoc y obtener resultados. Para obtener más información, consulte Consulta de registros de AWS WAF en la Guía del usuario de Amazon Athena. Para ver ejemplos adicionales de consultas de Amazon Athena, consulte aws-samples/waf-log-sample-athena-queries en el sitio web de GitHub.

nota

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

Sus ACL web publican sus archivos de registro 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 una ACL web, busque las entradas agregadas por el nombre de la ACL web, la región y el ID de su cuenta.

Requisitos de nomenclatura y sintaxis

Los nombres de sus bucket para los registros de AWS WAF deben empezar por aws-waf-logs- y pueden 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 las API de AWS WAF, la CLI o AWS CloudFormation.

Para obtener información acerca del uso de prefijos en Amazon S3consulte Organizar objetos usando prefijos 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 cubos, y siguiendo los prefijos que proporcione, sus registros de AWS WAF se escriben en una estructura de carpetas determinada por su ID de cuenta, la región, el nombre de la 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 valor de Cuenta de AWS es 11111111111. La 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 sus bucket para los registros de AWS WAF deben empezar por aws-waf-logs- y pueden terminar con el sufijo que desee.

Permisos necesarios para publicar registros en Amazon S3

La configuración del registro de tráfico de ACL web para un bucket de Amazon S3 requiere la siguientes 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 desea administrar un acceso más detallado a sus registros y recursos de AWS WAF, puede configurar estos permisos. Para obtener información sobre la administración de permisos, consulte Administración de acceso a recursos de AWS en la Guía del usuario de IAM. Para obtener información sobre las políticas administradas de AWS WAF, consulte Políticas administradas de AWS para AWS WAF.

Los siguientes permisos le permiten cambiar la configuración de registro de la 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 vea errores en sus registros de AWS CloudTrail que indiquen que se ha denegado el acceso, pero los permisos son correctos para el registro de AWS WAF.

{ "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-LOGGING-BUCKET-SUFFIX" ], "Effect":"Allow" } ] }

Cuando se permiten acciones en todos los recursos de AWS, se indica en la política con una configuración de "Resource" de "*". Esto significa que las acciones están permitidas en todos los recursos de AWS 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.

{ "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-LOGGING-BUCKET-SUFFIX/AWSLogs/account-id/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX", "Condition": { "StringEquals": { "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } } ] }
nota

Los nombres de sus bucket para los registros de AWS WAF deben empezar por aws-waf-logs- y pueden 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? (¿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 bucket permite Cuenta de AWS 111122223333 publicar registros en un bucket denominado aws-waf-logs-LOGGING-BUCKET-SUFFIX:

{ "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-LOGGING-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-LOGGING-BUCKET-SUFFIX", "Condition": { "StringEquals": { "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } } ] }

Permisos para usar AWS Key Management Service con una clave KMS

Si el destino del registro utiliza el cifrado del servidor con claves almacenadas en AWS Key Management Service (SSE-KMS) y utiliza una clave administrada por el cliente (clave KMS), debe conceder permiso a AWS WAF para usar la 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.

Agregue la siguiente política de claves a su clave de KMS para permitir que AWS WAF registre 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

Amazon S3 utiliza listas de control de acceso (ACL) para administrar el acceso a los archivos de registro creados por un registro de AWS WAF. 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 (Información general de la Lista de control de acceso [ACL]) en la Guía del usuario de Amazon Simple Storage Service.