Como enviar logs do AWS WAF para um bucket do Amazon S3 em uma conta de registro em log centralizada?

Data da última atualização: 28/06/2022

Como enviar logs do AWS WAF para um bucket do Amazon Simple Storage Service (Amazon S3) em uma conta ou região da AWS diferente?

Breve descrição

Para enviar logs do AWS WAF para um bucket do Amazon S3 em uma conta de registro em log centralizada, faça o seguinte:

  1. Crie um bucket do S3 na conta de registro em log centralizada que tenha um nome de bucket começando com aws-waf-logs- na região da AWS selecionada.
  2. Crie e adicione uma política de bucket ao bucket do S3 que permita a entrega de logs das contas de origem.
  3. Use o comando put-logging-configuration da AWS CLI para configurar suas listas de controle de acesso à Web (ACLs da web) para enviar os logs ao bucket do S3 na conta de registro em log centralizada.

Resolução

Criar um bucket do S3 na conta de registro em log centralizada na região selecionada

  1. Crie um bucket do S3 na conta de registro em log centralizada para sua região da AWS selecionada.
  2. Insira um nome de bucket começando com o prefixo aws-waf-logs-.
    Por exemplo: aws-waf-logs-example-bucket

Criar e adicionar uma política de bucket ao bucket do S3

Adicione a seguinte política de bucket do S3 ao seu bucket do S3:

Importante:

  • Substitua os IDs de conta em aws:SourceAccount pela lista de IDs de conta das suas contas de origem que enviarão registros em log para esse bucket.
  • Substitua os ARNs em aws:SourceArn pela lista de ARNs de recursos de origem que publicarão logs nesse bucket, no formato arn:aws:logs:*:source-account-id:*.
  • Substitua o nome do bucket do S3 aws-waf-logs-example-bucket em Resource (Recurso) pelo nome do bucket do S3.
{
  "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-example-bucket/AWSLogs/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceAccount": [
            "111111111111",
            "222222222222"
          ]
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:logs:*:111111111111:*",
            "arn:aws:logs:*:222222222222:*"
          ]
        }
      }
    },
    {
      "Sid": "AWSLogDeliveryAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::aws-waf-logs-example-bucket",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111111111111",
            "222222222222"
          ]
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:logs:*:111111111111:*",
            "arn:aws:logs:*:222222222222:*"
          ]
        }
      }
    }
  ]
}

Configurar suas ACLs da Web para enviar os logs ao bucket do S3 desejado

Você deve configurar sua ACL da Web para enviar os logs do AWS WAF ao bucket S3 da conta de registro em log centralizada. Para configurar sua ACL da Web, execute o seguinte comando da AWS CLI na conta que possui a ACL da Web:

Importante:

  • Substitua o valor ResourceArn pelo ARN das suas ACLs da Web.
  • Substitua o valor LogDestinationConfigs pelo ARN do bucket do S3 na sua conta de registro em log centralizada.
  • Substitua region (região) pela região da AWS em que sua ACL da Web está localizada.
aws wafv2 put-logging-configuration --logging-configuration ResourceArn=arn:aws:wafv2:eu-west-1: 111111111111:regional/webacl/testing/b4a768c9-4895-4f35-9354-3049ab8acc29,LogDestinationConfigs=arn:aws:s3:::aws-waf-logs-example-bucket --region eu-west-1

Observação: para ACLs da web na região CloudFront(Global), use us-east-1 como a região da AWS no comando anterior.

Repita o comando put-logging-configuration anterior para cada uma das suas ACLs da Web.


Destinos de registro em log do Amazon Simple Storage Service

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?