Salta al contenuto

Come posso attivare la registrazione di AWS WAF e inviare i log a CloudWatch, Amazon S3 o Firehose?

5 minuti di lettura
0

Desidero attivare la registrazione di AWS WAF e inviare i log ad Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) o Amazon Data Firehose.

Breve descrizione

Prima di tutto, scegli una destinazione supportata per la lista di controllo degli accessi web (ACL web) di AWS WAF. Devi configurare le autorizzazioni necessarie per attivare i log di AWS WAF. AWS WAF supporta le seguenti destinazioni dei log:

Quindi attiva i log di AWS WAF per la destinazione.

Risoluzione

Prerequisiti:

  • I nomi dei gruppi di log devono iniziare con il prefisso aws-waf-logs-.
  • I gruppi di log devono trovarsi nello stesso account AWS e nella stessa Regione AWS dell'ACL web. Per le ACL web globali che associ ad Amazon CloudFront, il gruppo di log deve trovarsi nella Regione Stati Uniti orientali (Virginia settentrionale).
  • Esamina le quote dei gruppi di log di CloudWatch Logs e Firehose che devi rispettare.

Configura le autorizzazioni per un gruppo di log di CloudWatch Logs

Crea un nuovo gruppo di log o utilizza un gruppo di log esistente. Utilizza CloudWatch Logs Insights per analizzare i log di AWS WAF.

Utilizza il formato Region_web-acl-name_log-stream-number per i flussi di log creati nei gruppi di log.

Configura le autorizzazioni richieste per pubblicare i log in CloudWatch Logs. Quando l'utente ha le autorizzazioni richieste, CloudWatch aggiunge automaticamente la seguente policy basata sulle risorse al gruppo di log che consente ad AWS WAF di inviargli i log:

{
  "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: sostituisci SourceAccount con il tuo numero di account e SourceARN con il tuo nome della risorsa Amazon (ARN).

Se non vedi i log nel gruppo di log, utilizza l'API DescribeResourcePolicies per verificare che la policy basata sulle risorse abbia le autorizzazioni necessarie. Per modificare la tua politica basata sulle risorse, utilizza l'API PutResourcePolicy.

Per ulteriori informazioni sulle autorizzazioni di registrazione, consulta Abilita la registrazione dai servizi AWS.

Configura le autorizzazioni per un bucket Amazon S3

Quando invii log di AWS WAF a un bucket S3, puoi utilizzare Amazon Athena per analizzare i log di AWS WAF.

Configura le autorizzazioni richieste per pubblicare i log in un bucket S3. Quando l'utente ha le autorizzazioni richieste, AWS aggiunge automaticamente la seguente policy al bucket che consente ad AWS WAF di inviargli i log:

{
  "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: sostituisci SourceAccount con il tuo numero di account e SourceARN con il tuo ARN.

Se non vedi i log nel bucket, utilizza l'API GetBucketPolicy per verificare che la policy del bucket abbia le autorizzazioni necessarie. Per modificare la policy del bucket, utilizza l'API PutBucketPolicy.

Per inviare i log a un altro account o Regione, consulta Come si inviano i log di AWS WAF a un bucket Amazon S3 in un account di registrazione centralizzato?

Configura le autorizzazioni per Firehose

Configura un flusso di distribuzione di Firehose. Mantieni disattivate le opzioni Trasformazione dei dati e Conversione del formato di record. Per configurare una destinazione per il flusso di distribuzione, consulta Configurare le impostazioni di destinazione. Per ulteriori informazioni, consulta Creare un flusso Firehose dalla console.

Nota: un log di AWS WAF equivale a un record di Firehose.

Configura le autorizzazioni richieste per pubblicare i log in un flusso di distribuzione di Firehose. Per informazioni sui ruoli collegati ai servizi e sull'autorizzazione iam:CreateServiceLinkedRole, consulta Utilizzo di ruoli collegati ai servizi per AWS WAF.

Attiva i log di AWS WAF

Completa i seguenti passaggi:

  1. Apri la console AWS WAF.
  2. Nel pannello di navigazione, in AWS WAF, scegli Resources & protection packs (Risorse e pacchetti di protezione).
  3. Individua il pacchetto di protezione e scegli View and edit (Visualizza e modifica) accanto a Logging (Registrazione).
  4. In Logging (Registrazione), seleziona Activate (Attiva).
  5. Scegli Logging Destination (Destinazione registrazione).
  6. Nel pannello destro, per Logging destination (Destinazione registrazione), scegli la destinazione.
  7. Per Redacted fields (Campi oscurati), scegli i campi che desideri omettere dai log.
  8. Per Filter logs (Filtra i log), aggiungi i filtri per le richieste che desideri archiviare.
  9. Scegli Save (Salva).