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

Ultimo aggiornamento: 22/07/2022

Desidero attivare la registrazione per AWS WAF e inviare i registri ad Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) o Amazon Kinesis Data Firehose. Come si attivano i registri di AWS WAF e quali sono le autorizzazioni richieste?

Breve descrizione

Innanzitutto, scegli una destinazione supportata per la tua ACL Web AWS WAF. AWS WAF supporta le seguenti destinazioni per i registri:

Assicurati di disporre delle autorizzazioni delle risorse necessarie per attivare i registri di AWS WAF. Quindi, attiva i registri di AWS WAF utilizzando la destinazione prescelta.

Risoluzione

Le seguenti destinazioni sono supportate per l'archiviazione dei registri di AWS WAF:

File di log Amazon CloudWatch

Per inviare i registri a un gruppo di flussi di log di CloudWatch Logs, scegli il gruppo di flussi di log di CloudWatch Logs come destinazione quando attivi i registri di AWS WAF.

Creare un nuovo gruppo di flussi di log o utilizzarne uno esistente. Quando sono attivati, i registri di AWS WAF vengono inviati ai gruppi di flussi di log nei flussi di log. È possibile analizzare questi registri utilizzandoLogs Insights. Per ulteriori informazioni, consulta Quali sono le opzioni disponibili per analizzare i registri di AWS WAF archiviati in CloudWatch o Amazon S3?

Considerare quanto segue quando si utilizzano i registri di CloudWatch:

  • I nomi dei gruppi di flussi di log devono iniziare con il prefisso aws-waf-logs-.
  • I gruppi di flussi di log devono trovarsi nello stesso account AWS e nella stessa Regione dell'ACL Web. Per le ACL Web globali associate a CloudFront, il gruppo di flussi di log deve trovarsi nella Regione Stati Uniti orientali (Virginia settentrionale).
  • I gruppi di flussi di log dispongono di quote per i gruppi di flussi di log durante l'archiviazione dei registri.
  • I flussi di log creati nei gruppi di flussi di log hanno il seguente formato:
Region_web-acl-name_log-stream-number

Autorizzazioni necessarie

L'account che attiva i registri di AWS WAF utilizzando il gruppo di flussi di log di CloudWatch Logs deve disporre delle seguenti autorizzazioni:

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

Queste autorizzazioni sono necessarie per modificare la configurazione di registrazione ACL Web, configurare la distribuzione dei registri e recuperare e modificare le autorizzazioni per un gruppo di flussi di log. Queste autorizzazioni devono essere collegate all'utente che gestisce AWS WAF.

Quando vengono assegnate queste autorizzazioni, AWS aggiunge automaticamente la seguente policy nelle policy basate sulle risorse di CloudWatch Logs. Ciò consente ai servizi di distribuzione di inviare i registri a un gruppo di flussi di log di CloudWatch Logs.
Nota: il numero di account e il nome della risorsa Amazon (ARN) saranno specifici del tuo account per la seguente policy.

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

Se non vedi i registri nel tuo gruppo di flussi di log, controlla se le autorizzazioni necessarie precedenti sono state aggiunte alla policy basata sulle risorse del tuo gruppo di flussi di log utilizzando l'API DescribeResourcePolicies. È possibile modificare la policy basata sulle risorse per i servizi di registro utilizzando PutResourcePolicy.

Per ulteriori informazioni sulle autorizzazioni dei gruppi di flussi di log, consulta Abilitazione della registrazione da determinati servizi AWS.

Bucket Amazon S3

Per inviare i registri a un bucket Amazon S3, scegli il bucket S3 come destinazione quando attivi i registri di AWS WAF.

Le ACL Web pubblicano i file di registro in un bucket S3 a intervalli di cinque minuti. La dimensione massima del file è 75 megabyte (MB). Se la dimensione del file supera il valore massimo, viene registrato un nuovo file. Quando i registri sono attivi, puoi analizzarli utilizzando Amazon Athena. Per ulteriori informazioni, consulta Esecuzione di query su log di AWS WAF.

I nomi dei bucket S3 per la registrazione di AWS WAF devono iniziare con il prefisso aws-waf-logs-.

Autorizzazioni necessarie

L'account che attiva i registri di AWS WAF utilizzando un bucket S3 deve disporre delle seguenti autorizzazioni:

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

Queste autorizzazioni sono necessarie per attivare la registrazione di AWS WAF e configurare la distribuzione dei registri per un bucket S3. Sono inoltre necessari per recuperare e modificare la policy del bucket per consentire la distribuzione dei registri di AWS WAF a un bucket S3.

Quando vengono assegnate queste autorizzazioni, la seguente policy di esempio viene aggiunta automaticamente alla policy del bucket per consentire la distribuzione dei registri al bucket S3:
Nota: il numero di account e il nome della risorsa Amazon (ARN) sono specifici del tuo account per la seguente policy.

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

Se non vedi i registri di AWS WAF nel bucket S3, controlla se le autorizzazioni necessarie sono presenti nella policy del bucket utilizzando l'API GetBucketPolicy. Puoi modificare la policy del bucket utilizzando l'API PutBucketPolicy.

Per inviare i registri a un altro account AWS o un’altra regione AWS, consulta Come si inviano i registri di AWS WAF a un bucket Amazon S3 in un account di registrazione centralizzato?

Amazon Kinesis Data Firehose

Per inviare i registri di AWS WAF al flusso di Kinesis Data Firehose, devi creare un flusso di distribuzione. Il flusso di distribuzione ha diverse destinazioni per archiviare i registri.

Considerare quanto segue quando si utilizza Kinesis Data Firehose:

  • Il nome Kinesis Data Firehose deve iniziare con il prefisso aws-waf-logs-.
  • Il flusso di distribuzione di Kinesis Data Firehose deve trovarsi nello stesso account e nella stessa regione AWS della tua ACL Web. Per le ACL Web globali associate a CloudFront, deve invece trovarsi nella regione Stati Uniti orientali (Virginia settentrionale).
  • Un registro AWS WAF equivale a un record Kinesis Data Firehose ed è soggetto alle quote di Amazon Kinesis Data Firehose.
    Importante: se ricevi più di 10.000 richieste al secondo, i tuoi dati vengono limitati e non tutte le richieste vengono registrate. Per evitare la limitazione, è necessario richiedere un aumento della quota per Kinesis Data Firehose.

Autorizzazioni necessarie

L'account che attiva i registri di AWS WAF utilizzando la destinazione Kinesis Data Firehose deve disporre delle seguenti autorizzazioni:

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

Per informazioni sui ruoli collegati ai servizi e sull'autorizzazione IAM:CreateServiceLinkedRole, consulta Utilizzare ruoli collegati ai servizi per AWS WAF.

Per creare un flusso di distribuzione Kinesis Data Firehose, attenersi alla seguente procedura:

  1. Apri la console Amazon Kinesis.
  2. Per Region (Regione), seleziona la Regione AWS in cui hai creato la tua ACL Web.
    Nota: seleziona Global (Globale) se la tua ACL Web è configurata per Amazon CloudFront.
  3. Nel riquadro di navigazione, scegli Delivery streams (Flussi di distribuzione).
  4. Seleziona Crete delivery stream (Crea flusso di distribuzione).
  5. Per Source (Origine), scegli Direct PUT (PUT diretto).
  6. Per Destination (Destinazione), scegliete tra le destinazioni disponibili per Kinesis Firehose.
  7. Per Delivery stream name (Nome flusso di distribuzione), inserisci un nome per il flusso di distribuzione che inizia con aws-waf-logs-.
  8. Conferma che Data transformation (Trasformazione dei dati) e Record format conversion (Conversione del formato di registrazione) siano entrambe Disabled (Disabilitate).
  9. Inserire leDestination settings (Impostazioni di destinazione) in base al metodo di destinazione scelto nel passaggio 6.
  10. (Facoltativo) Per Buffer hints, compression and encryption (Suggerimenti per buffer, compressione e crittografia), configurare in base alle specifiche o mantenere le impostazioni predefinite.
  11. (Facoltativo) Per Advanced settings (Impostazioni avanzate), configurare in base alle proprie specifiche o mantenere le impostazioni predefinite.
  12. Esamina le impostazioni per il flusso di distribuzione. Se le impostazioni corrispondono alle tue specifiche, scegli Create delivery stream (Crea flusso di distribuzione).

Attiva i registri di AWS WAF

Dopo aver deciso la destinazione verso cui inviare i registri di AWS WAF, attiva la registrazione di AWS WAF procedendo nel seguente modo:

  1. Apri la console AWS WAF.
  2. Per Region (Regione), seleziona la Regione AWS in cui hai creato la tua ACL Web.
    Nota: seleziona Global (Globale) se la tua ACL Web è configurata per Amazon CloudFront.
  3. Seleziona la tua ACL Web.
  4. Scegli Logging and Metrics (Registrazione e parametri), quindi scegli Enable (Abilita).
  5. Scegli la Destination (Destinazione) in cui desideri archiviare i registri di AWS WAF dalle destinazioni supportate.
  6. Per Redacted fields (Campi oscurati), selezionare i campi che si desidera omettere dai registri.
  7. Per Filter logs (Filtra registri), aggiungi il filtro per controllare quali richieste desideri archiviare.
  8. Scegli Save (Salva).

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?