Enviar logs de tráfego do pacote de proteção (ACL da Web) para um bucket do Amazon Simple Storage Service - Administrador de segurança da rede do AWS WAF, AWS Firewall Manager, AWS Shield Advanced e AWS Shield

Apresentação de uma nova experiência de console para o AWS WAF

Agora você pode usar a experiência atualizada para acessar a funcionalidade do AWS WAF em qualquer lugar no console. Consulte mais detalhes em Trabalhar com a experiência atualizada do console.

Enviar logs de tráfego do pacote de proteção (ACL da Web) para um bucket do Amazon Simple Storage Service

Este tópico fornece informações sobre o envio dos logs de tráfego do pacote de proteção (ACL da Web) para um bucket do Amazon S3.

nota

Você é cobrado pelo login, além das cobranças pelo uso do AWS WAF. Para mais informações, consulte Preços para registrar em log informações de tráfego do pacote de proteção (ACL da Web).

Para enviar os logs de tráfego do pacote de proteção (ACL da Web) para o Amazon S3, você configura um bucket do Amazon S3 na mesma conta que usa para gerenciar o pacote de proteção (ACL da Web) e atribui ao bucket um nome começando com aws-waf-logs-. Ao ativar o login no AWS WAF, você fornece o nome do bucket. Para obter informações sobre como criar um bucket de log, consulte Criar um bucket, no Guia do usuário do Amazon Simple Storage Service.

Você pode acessar e analisar seus logs do Amazon S3 usando o serviço de consulta interativa do Amazon Athena. O Athena facilita analisar dados diretamente no Amazon S3 com o SQL padrão. Com algumas ações no Console de gerenciamento da AWS, você pode direcionar o Athena para os seus dados armazenados no Amazon S3 e começar a usar o SQL padrão rapidamente para executar consultas pontuais e obter resultados em segundos. Para obter mais informações, consulte Consultar os logs do AWS WAF no Manual do usuário do Amazon Athena. Para exemplos adicionais de consultas do Amazon Athena, consulte aws-samples/waf-log-sample-athena-queries no site do GitHub.

nota

O AWS WAF suporta criptografia com buckets do Amazon S3 para o tipo de chave Amazon S3 key (SSE-S3) e para AWS Key Management Service (SSE-KMS) AWS KMS keys. O AWS WAF não oferece suporte à criptografia para chaves AWS Key Management Service gerenciadas pelo AWS.

Os arquivos de log do pacote de proteção (ACL da Web) são publicados no bucket do Amazon S3 em intervalos de cinco minutos. Cada arquivo de log contém os registros de log de fluxo para o tráfego de IP registrado nos últimos cinco minutos.

O tamanho máximo de um arquivo de log é de 75 MB. Se o arquivo de log atingir o limite de tamanho no período de 5 minutos, o log para de adicionar registros de log de fluxo, publica o arquivo no bucket do Amazon S3 e cria um novo arquivo de log.

Os arquivos de log são compactados. Se você abrir os arquivos usando o console do Amazon S3, o Amazon S3 descompacta os registros de log e os exibe. Se você baixar os arquivos de log, será necessário descompactá-los para visualizar os registros de log de fluxo.

Um único arquivo de log contém entradas intercaladas com vários registros. Para ver todos os arquivos de log de um pacote de proteção (ACL da Web), procure as entradas agregadas pelo nome do pacote de proteção (ACL da Web), região e ID da sua conta.

Requisitos de nomenclatura e sintaxe

Os nomes dos buckets para registro em log do AWS WAF devem começar com aws-waf-logs- e terminar com qualquer sufixo que você quiser. Por exemplo, aws-waf-logs-LOGGING-BUCKET-SUFFIX.

Localização do bucket

Os locais do bucket usam a seguinte sintaxe:

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/
ARN do bucket

O formato do bucket do nome do recurso da Amazon (ARN) é o seguinte:

arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
Localizações de buckets com prefixos

Se você usar prefixos no nome das chaves de objeto para organizar os dados que você armazena nos seus buckets, você pode fornecer seus prefixos nos nomes dos buckets de logs.

nota

Essa opção não está disponível no console. Use as APIs, CLI ou AWS CloudFormation do AWS WAF.

Para obter informações sobre o uso de prefixos no Amazon S3, consulte Organização de objetos usando prefixos no Guia do usuário do Amazon Simple Storage Service.

Os locais do bucket com prefixos usam a seguinte sintaxe:

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/KEY-NAME-PREFIX/
Pastas e nomes de arquivos do bucket

Dentro dos buckets e seguindo os prefixos fornecidos por você, os logs do AWS WAF são gravados em uma estrutura de pastas determinada pelo ID da conta, a região, o nome do pacote de proteção (ACL da Web) e a data e hora.

AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm

Dentro das pastas, os nomes dos arquivos de log seguem um formato semelhante:

account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz

As especificações de hora usadas na estrutura de pastas e no nome do arquivo de log seguem a especificação de formato de timestamp YYYYMMddTHHmmZ.

Veja abaixo um exemplo de arquivo de log em um bucket do Amazon S3 para um bucket chamado aws-waf-logs-LOGGING-BUCKET-SUFFIX. O Conta da AWS é 11111111111. O pacote de proteção (ACL da Web) é TEST-WEBACL e a região éus-east-1.

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
nota

Os nomes dos seus buckets para logs do AWS WAF devem começar com aws-waf-logs- e terminar com qualquer sufixo que você quiser.

Permissões necessárias para publicar logs no Amazon S3

A configuração do registro em log de tráfego do pacote de proteção (ACL da Web) para um bucket do Amazon S3 requer as seguintes configurações de permissão. Essas permissões são definidas para você quando você usa uma das políticas gerenciadas de acesso total do AWS WAF, AWSWAFConsoleFullAccess ou AWSWAFFullAccess. Se quiser gerenciar ainda mais o acesso ao registro em log e aos recursos do AWS WAF, você mesmo pode definir essas permissões. Para obter mais informações sobre gerenciamento de permissões, consulte Gerenciamento de acesso para recursos da AWS no Guia do usuário do IAM. Para obter informações sobre as políticas gerenciadas do AWS WAF, consulte AWS Políticas gerenciadas pela do AWS WAF.

As permissões a seguir permitem alterar a configuração do registro em log do pacote de proteção (ACL da Web) e configurar a entrega de logs para o bucket do Amazon S3. Essas permissões devem ser anexadas ao usuário que você usa para gerenciar o AWS WAF.

nota

Ao definir as permissões listadas abaixo, você pode ver erros em seus logs do AWS CloudTrail que indicam acesso negado, mas as permissões estão corretas para logs do AWS WAF.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "wafv2:PutLoggingConfiguration", "wafv2:DeleteLoggingConfiguration" ], "Resource":[ "*" ], "Effect":"Allow", "Sid":"LoggingConfigurationAPI" }, { "Sid":"WebACLLogDelivery", "Action":[ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*", "Effect":"Allow" }, { "Sid":"WebACLLoggingS3", "Action":[ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix" ], "Effect":"Allow" } ] }

Quando as ações são permitidas em todos os recursos da AWS, isso é indicado na política com uma configuração "Resource" de "*". Isso significa que as ações são permitidas em todos os recursos da AWS que cada ação suporta. Por exemplo, a ação wafv2:PutLoggingConfiguration é suportada somente para wafv2 registrar recursos de configuração.

Por padrão, os buckets do Amazon S3 e os objetos que eles contêm são privados. Somente o proprietário do bucket pode acessá-los. No entanto, o proprietário do bucket pode conceder acesso a outros recursos e usuários por meio da criação de uma política de acesso.

Se o usuário que cria um log de fluxo possui o bucket, o serviço anexa automaticamente as políticas de bucket a seguir para conceder permissão ao log de fluxo para publicar logs nele:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["123456789012"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix", "Condition": { "StringEquals": { "aws:SourceAccount": ["123456789012"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"] } } } ] }
nota

Os nomes dos seus buckets para logs do AWS WAF devem começar com aws-waf-logs- e terminar com qualquer sufixo que você quiser.

Se o usuário que cria o log não possui o bucket nem tem as permissões GetBucketPolicy e PutBucketPolicy para o bucket, ocorre uma falha na criação do log de fluxo. Nesse caso, o proprietário do bucket deve adicionar manualmente as políticas acima ao bucket e especificar o ID do Conta da AWS do criador do log. Para obter mais informações, consulte Como adiciono uma política de bucket do S3? no Guia do usuário do Amazon Simple Storage Service. Se o bucket recebe logs de fluxo de várias contas, adicione uma entrada de elemento Resource à instrução de política AWSLogDeliveryWrite para cada conta.

Por exemplo, a política de bucket a seguir permite que Conta da AWS 111122223333 publiquem logs na pasta de um bucket chamado aws-waf-logs-LOGGING-BUCKET-SUFFIX:

JSON
{ "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-amzn-s3-demo-destination-bucket-suffix/AWSLogs/111122223333/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix", "Condition": { "StringEquals": { "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } } ] }
nota

Em alguns casos, você poderá ver os erros AccessDenied em AWS CloudTrail se a permissão s3:ListBucketnão tiver sido concedida a delivery.logs.amazonaws.com. Para evitar esses erros nos logs do CloudTrail, você deve conceder a permissão s3:ListBucket a delivery.logs.amazonaws.com e incluir os parâmetros de Condition mostrados com a permissão s3:GetBucketAcl definida na política de bucket anterior. Para simplificar, em vez de criar uma nova Statement, você pode atualizar AWSLogDeliveryAclCheck diretamente para “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Permissões para uso de AWS Key Management Service com uma chave KMS

Se seu destino de logs usa criptografia do lado do servidor com chaves armazenadas em AWS Key Management Service (SSE-KMS) e você usa uma chave gerenciada pelo cliente (chave KMS), você deve dar permissão ao AWS WAF para usar sua chave KMS. Para fazer isso, você adiciona uma política de chave à chave KMS do destino escolhido. Isso permite que os logs do AWS WAF gravem seus arquivos de log no seu destino.

Adicione a seguinte política de chave à sua chave do KMS para permitir que o AWS WAF faça login no seu bucket do Amazon S3.

{ "Sid": "Allow AWS WAF to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

Permissões necessárias para acessar arquivos de log do Amazon S3

O Amazon S3 usa listas de controle de acesso (ACLs) para gerenciar o acesso aos arquivos de log criados por um log AWS WAF. Por padrão, o proprietário do bucket tem permissões FULL_CONTROL em cada arquivo de log. O proprietário da entrega de logs, se é diferente do proprietário do bucket, não tem nenhuma permissão. A conta de entrega de logs tem permissões READ e WRITE. Para obter mais informações, consulte Visão geral da lista de controle de acesso (ACL) no Guia do usuário do Amazon Simple Storage Service.