Saltar al contenido

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

5 minutos de lectura
0

Quiero activar los registros en AWS WAF y enviarlos a Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) o Amazon Data Firehose.

Descripción corta

En primer lugar, elige un destino compatible para tu lista de control de acceso web (ACL web) de AWS WAF. Debes configurar los permisos necesarios para activar los registros de AWS WAF. AWS WAF admite los siguientes destinos de registro:

A continuación, activa los registros de AWS WAF para tu destino.

Resolución

Requisitos previos:

  • Los nombres de los grupos de registro deben empezar por el prefijo aws-waf-logs-.
  • Los grupos de registro deben estar en la misma cuenta y región de AWS que tu ACL web. En el caso de las ACL web globales que asocias a Amazon CloudFront, el grupo de registro debe estar en la región este de EE. UU. (norte de Virginia).
  • Revisa los grupos de registro de Registros de CloudWatch y las cuotas de Firehose que debes cumplir.

Configuración de los permisos para un grupo de registro de Registros de CloudWatch

Crea un grupo de registro o utiliza uno que ya exista. Utiliza Información de registros de CloudWatch para analizar tus registros de AWS WAF.

Utiliza el formato Region_web-acl-name_log-stream-number para las secuencias de registros que crees en grupos de registro.

Configura los permisos necesarios para publicar registros en Registros de CloudWatch. Cuando el usuario tiene los permisos necesarios, CloudWatch agrega automáticamente la siguiente política basada en recursos al grupo de registro que permite a AWS WAF enviarle registros:

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

Nota: Sustituye SourceAccount por tu número de cuenta y SourceARN por tu nombre de recurso de Amazon (ARN).

Si no ves los registros en tu grupo de registro, usa la API DescribeResourcePolicies para verificar que la política basada en recursos tenga los permisos necesarios. Para editar tu política basada en recursos, usa la API PutResourcePolicy.

Para obtener más información sobre los permisos de registro, consulta Activación del registro desde los servicios de AWS.

Configuración de los permisos para un bucket de Amazon S3

Cuando envías registros de AWS WAF a un bucket de S3, puedes usar Amazon Athena para analizar tus registros de AWS WAF.

Configura los permisos necesarios para publicar registros en un bucket de S3. Cuando el usuario tiene los permisos necesarios, AWS agrega automáticamente la siguiente política al bucket que permite a AWS WAF entregarle los registros:

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

Nota: Sustituye SourceAccount por tu número de cuenta y SourceARN por tu ARN.

Si no ves los registros en tu bucket, usa la API GetBucketPolicy para verificar que tu política de bucket tenga los permisos necesarios. Para editar tu política de bucket, usa la API PutBucketPolicy.

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

Configuración de los permisos de Firehose

Configura una secuencia de entrega de Firehose. Mantén desactivadas las opciones de transformación de datos y conversión de formato de registro. Para configurar un destino para la secuencia de entrega, consulta Configuración de los ajustes de destino. Para obtener más información, consulta Creación de una secuencia de Firehose desde la consola.

Nota: Un registro de AWS WAF equivale a un registro de Firehose.

Configura los permisos necesarios para publicar registros en una secuencia de entrega de Firehose. Para obtener información sobre los roles vinculados a los servicios y el permiso iam:CreateServiceLinkedRole, consulta Uso de roles vinculados a servicios para AWS WAF.

Activación de los registros de AWS WAF

Sigue estos pasos:

  1. Abre la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, elige Paquetes de protección y recursos.
  3. Busca tu paquete de protección y, a continuación, elige Ver y editar junto a Registro.
  4. En Registro, selecciona Activar.
  5. Elige el destino del registro.
  6. En el panel derecho de Destino del registro, elige tu destino.
  7. En Campos redactados, selecciona los campos que desees omitir de los registros.
  8. En Registros de filtros, agrega filtros para las solicitudes que desees almacenar.
  9. Selecciona Guardar.