¿Cómo puedo activar los registros de AWS WAF y enviarlos a CloudWatch, Amazon S3 o Kinesis Data Firehose?

8 minutos de lectura
0

Quiero activar los registros en AWS WAF y enviarlos a Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) o Amazon Kinesis Data Firehose. ¿Cómo puedo activar los registros de AWS WAF y qué permisos se necesitan?

Breve descripción

En primer lugar, elija un destino compatible para su ACL web de AWS WAF. AWS WAF admite los siguientes destinos de registro:

Asegúrese de contar con los permisos de recursos necesarios para activar los registros de AWS WAF. A continuación, active los registros de AWS WAF con el destino que prefiera.

Solución

Los registros de AWS WAF se pueden guardar en estos destinos:

Registros de Amazon CloudWatch

Para enviar registros a un grupo de Registros de CloudWatch, seleccione Grupo de registros de CloudWatch Logs como destino cuando active los registros de AWS WAF.

Cree un grupo de registros o utilice uno que ya exista. Cuando se activa esta opción, los registros de AWS WAF se envían a grupos de registros en secuencias de registros. Puede analizar estos registros mediante Logs Insights. Para obtener más información, consulte ¿Cuáles son mis opciones para analizar los registros de AWS WAF almacenados en CloudWatch o Amazon S3?

Tenga en cuenta lo siguiente cuando utilice registros de CloudWatch:

  • Los nombres de los grupos de registros deben empezar por el prefijo aws-waf-logs-.
  • Los grupos de registros deben estar en la misma cuenta y región de AWS que su ACL web. En el caso de las ACL web globales asociadas a CloudFront, el grupo de registros debe estar en la región Este de EE. UU. (Norte de Virginia).
  • Los grupos de registros tienen cuotas para los grupos de registros en relación con el almacenamiento de los registros.
  • Las secuencias de registros creadas en grupos de registros tienen el siguiente formato:
Region_web-acl-name_log-stream-number

Permisos necesarios

La cuenta que active los registros de AWS WAF mediante el grupo de Registros de CloudWatch deberá tener los siguientes permisos:

  • wafv2:PutLoggingConfiguration
  • wafv2:DeleteLoggingConfiguration
  • logs:CreateLogDelivery
  • logs:DeleteLogDelivery
  • logs:PutResourcePolicy
  • logs:DescribeResourcePolicies
  • logs:DescribeLogGroups

Estos permisos son necesarios para cambiar la configuración de los registros de la ACL web, configurar la entrega de registros, así como para recuperar y editar los permisos de un grupo de registros. Estos permisos se deben asociar al usuario que administre AWS WAF.

Cuando se asignan estos permisos, AWS añade automáticamente la siguiente política a las políticas basadas en recursos de Registros de CloudWatch. Esto permite que los servicios de entrega envíen registros a un grupo de Registros de CloudWatch.
Nota: El número de cuenta y el nombre del recurso de Amazon (ARN) serán específicos de su cuenta para la siguiente política.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AWSLogDeliveryWrite20150319",
      "Effect": "Allow",
      "Principal": {
        "Service": ["delivery.logs.amazonaws.com"]
      },
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": ["arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*"],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": ["0123456789"]
        },
        "ArnLike": {
          "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"]
        }
      }
    }
  ]
}

Si no ve los registros en su grupo de registros, compruebe si se han añadido los permisos necesarios anteriores a la política basada en recursos de su grupo de registros mediante la API DescribeResourcePolicies. Puede editar la política basada en recursos para los servicios de registros mediante PutResourcePolicy.

Para obtener más información sobre los permisos de los grupos de registros, consulte Habilitar el registro desde determinados servicios de AWS.

Bucket de Amazon S3

Para enviar los registros a un bucket de Amazon S3, elija S3 bucket como destino cuando active los registros de AWS WAF.

Las ACL web publican los archivos de registro en un bucket de S3 a intervalos de cinco minutos. El tamaño máximo del archivo es de 75 megabytes (MB). Si el tamaño del archivo supera el máximo, se registrará un nuevo archivo. Si los registros están activados, podrá analizarlos con Amazon Athena. Para obtener más información, consulte Querying AWS WAF logs.

Los nombres de los buckets de S3 para registros de AWS WAF deben empezar con el prefijo aws-waf-logs-.

Permisos necesarios

La cuenta que active los registros de AWS WAF mediante un bucket de S3 deberá tener los siguientes permisos:

  • wafv2:PutLoggingConfiguration
  • wafv2:DeleteLoggingConfiguration
  • logs:CreateLogDelivery
  • logs:DeleteLogDelivery
  • s3:PutBucketPolicy
  • s3:GetBucketPolicy

Estos permisos son necesarios para activar los registros de AWS WAF y configurar la entrega de registros en el caso de un bucket de S3. También son necesarios para recuperar y editar la política de bucket de modo que permita la entrega de registros de AWS WAF a un bucket de S3.

Si se han asignado estos permisos, la siguiente política de ejemplo se añadirá automáticamente a la política de bucket para permitir la entrega de registros al bucket de S3:
Nota: El número de cuenta y el nombre de recurso de Amazon (ARN) son específicos de su cuenta para la siguiente política.

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

Si no ve los registros de AWS WAF en el bucket de S3, compruebe si la política del bucket cuenta con los permisos necesarios mediante la API GetBucketPolicy. Puede editar la política de bucket mediante la API PutBucketPolicy.

Para enviar registros a otra cuenta o región de AWS, consulte ¿Cómo envío registros de AWS WAF a un bucket de Amazon S3 en una cuenta de registro centralizada?

Amazon Kinesis Data Firehose

Para enviar los registros de AWS WAF a la secuencia de Kinesis Data Firehose, deberá crear una secuencia de entrega. La secuencia de entrega tiene diferentes destinos en los que almacenar los registros.

Tenga en cuenta lo siguiente cuando utilice Kinesis Data Firehose:

  • El nombre de Kinesis Data Firehose debe empezar por el prefijo aws-waf-logs-.
  • La secuencia de entrega de Kinesis Data Firehose debe estar en la misma cuenta y región de AWS que su ACL web. En el caso de las ACL web globales asociadas a CloudFront, Kinesis Data Firehose debe estar en la región Este de EE. UU. (Norte de Virginia).
  • Un registro de AWS WAF equivale a un registro de Kinesis Data Firehose y está sujeto a las cuotas de Amazon Kinesis Data Firehose.
    Importante: Si recibe más de 10 000 solicitudes por segundo, se limitarán sus datos y no se registrarán todas las solicitudes. Para evitar la limitación, debe solicitar un aumento de la cuota de Kinesis Data Firehose.

Permisos necesarios

La cuenta que active los registros de AWS WAF mediante el destino Kinesis Data Firehose deberá tener los siguientes permisos:

  • wafv2:PutLoggingConfiguration
  • wafv2:DeleteLoggingConfiguration
  • iam:CreateServiceLinkedRole
  • firehose:ListDeliveryStreams

Para obtener información sobre los roles vinculados a los servicios y el permiso iam:CreateServiceLinkedRole, consulte Using service-linked roles for AWS WAF.

Para crear una secuencia de entrega de Kinesis Data Firehose, siga estos pasos:

  1. Abra la consola de Amazon Kinesis.
  2. En Región, elija la región de AWS en la que haya creado la ACL web.
    Nota: Seleccione Global si su ACL web se ha configurado para Amazon CloudFront.
  3. En el panel de navegación, elija Flujos de entrega.
  4. Elija Crear secuencia de entrega.
  5. En Origen, elija Direct PUT.
  6. En Destino,elija uno de los destinos disponibles para Kinesis Firehose.
  7. En Nombre de la secuencia de entrega, indique un nombre que empiece por aws-waf-logs-.
  8. Confirme que Transformación de datos y Conversión del formato de los registros estén Deshabilitadas.
  9. Introduzca la Configuración de destino según el método de destino elegido en el paso 6.
  10. (Opcional) En Sugerencias para el almacenamiento en búfer, compresión y cifrado, configure sus propias especificaciones o conserve los ajustes predeterminados.
  11. (Opcional) En Configuración avanzada, configure sus propias especificaciones o conserve los ajustes predeterminados.
  12. Revise la configuración de la secuencia de entrega. Si la configuración coincide con sus especificaciones, seleccione Crear secuencia de envío.

Activación de los registros de AWS WAF

Después de decidir el destino al que desea enviar los registros de AWS WAF, actívelos de la siguiente manera:

  1. Abra la consola de AWS WAF.
  2. En Región, elija la región de AWS en la que haya creado la ACL web.
    Nota: Seleccione Global si su ACL web se ha configurado para Amazon CloudFront.
  3. Seleccione su ACL web.
  4. Seleccione Logging and Metrics y, a continuación, Habilitar.
  5. En Destino, elija uno de los destinos admitidos para almacenar allí los registros de AWS WAF.
  6. En Redacted fields, seleccione los campos que desee omitir de los registros.
  7. En Filtrar registros, añada un filtro para controlar qué solicitudes desea almacenar.
  8. Seleccione Guardar.
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años