Ir para o conteúdo

Como ativo o registro em log do AWS WAF e envio logs para o CloudWatch, o Amazon S3 ou o Firehose?

5 minuto de leitura
0

Quero ativar o registro em log para o AWS WAF e enviar os logs para o Amazon CloudWatch, o Amazon Simple Storage Service (Amazon S3) ou o Amazon Data Firehose.

Breve descrição

Primeiro, escolha um destino compatível para sua lista de controle de acesso da web (ACL da web) do AWS WAF. Você deve configurar as permissões necessárias para ativar os logs do AWS WAF. O AWS WAF oferece suporte aos seguintes destinos de log:

Em seguida, ative os logs do AWS WAF para o seu destino.

Resolução

Pré-requisitos:

  • Os nomes dos grupos de logs devem começar com o prefixo aws-waf-logs-.
  • Os grupos de logs devem estar na mesma conta e região da AWS que sua ACL da web. Para ACL da web globais que você associa ao Amazon CloudFront, o grupo de logs deve estar na região leste dos EUA (Norte da Virgínia).
  • Analise os grupos de logs do CloudWatch Logs e as cotas do Amazon Data Firehose que você deve cumprir.

Configure permissões para um grupo de logs do CloudWatch Logs

Crie um novo grupo de logs ou use um existente. Use o CloudWatch Logs Insights para analisar seus logs do AWS WAF.

Use o formato Region_web-acl-name_log-stream-number para fluxos de log que você cria em grupos de log.

Configure as permissões necessárias para publicar logs no CloudWatch Logs. Quando seu usuário tem as permissões necessárias, o CloudWatch adiciona automaticamente a seguinte política baseada em recursos ao grupo de logs que permite que o AWS WAF envie logs para ele:

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

Observação: Substitua SourceAccount pelo número da sua conta e SourceARN pelo seu nome do recurso da Amazon (ARN).

Se você não vê logs em seu grupo de logs, use a API DescribeResourcePolicies para verificar se a política baseada em recursos tem as permissões necessárias. Para editar sua política baseada em recursos, use a API PutResourcePolicy.

Para obter mais informações sobre permissões de registro em log, consulte Habilitar o registro a partir de AWS serviços.

Configure permissões para um bucket do Amazon S3

Ao enviar logs do AWS WAF para um bucket do S3, é possível usar o Amazon Athena para analisar seus logs do AWS WAF.

Configure as permissões necessárias para publicar logs em um bucket do S3. Quando seu usuário tem as permissões necessárias, a AWS adiciona automaticamente a seguinte política ao bucket, permitindo que o AWS WAF entregue logs a ele:

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

Observação: Substitua SourceAccount pelo número da sua conta e SourceARN pelo seu ARN.

Se você não vê os logs em seu bucket, use a API GetBucketPolicy para verificar se sua política de bucket tem as permissões necessárias. Para editar sua política de bucket, use a API PutBucketPolicy.

Para enviar logs para outra conta ou região, consulte Como enviar logs do AWS WAF para um bucket do Amazon S3 em uma conta de registro em log centralizada?

Configure permissões para o Firehose

Configure um stream de entrega do Firehose. Mantenha as opções de Transformação de dados e Conversão de formato de registro desativadas. Para configurar um destino para o stream de entrega, consulte Definição de configurações do destino. Para obter mais informações, consulte Criação de um fluxo do Firehose a partir do console.

Observação: Um log do AWS WAF é equivalente a um registro do Firehose.

Configure as permissões necessárias para publicar logs no stream de entrega do Amazon Data Firehose. Para obter mais informações sobre perfis vinculados a serviços e a permissão iam:CreateServiceLinkedRole, consulte Usando funções vinculadas a serviços para AWS WAF.

Ative logs do AWS WAF

Conclua as etapas a seguir:

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, selecione Recursos e pacotes de proteção.
  3. Encontre seu pacote de proteção e clique em Exibir e editar ao lado de Registro em log.
  4. Em Registro em log, selecione Ativar.
  5. Escolha o Destino do registro em log.
  6. No painel direito de Destino do registro em log, escolha seu destino.
  7. Em Campos omitidos, selecione os campos que você deseja omitir dos logs.
  8. Em Filtrar logs, adicione filtros para as solicitações que você deseja armazenar.
  9. Clique em Salvar.
AWS OFICIALAtualizada há 10 meses