Registrar em log as informações de tráfego da web ACL - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registrar em log as informações de tráfego da web ACL

Atenção

O suporte ao AWS WAF Classic terminará em 30 de setembro de 2025.

nota

Essa é a documentação do AWS WAF Classic. Você só deverá usar essa versão se tiver criado recursos do AWS WAF, como regras e web ACLs, no AWS WAF antes de novembro de 2019, e ainda não os tiver migrado para a versão mais recente. Para migrar suas ACLs da Web, consulte Como migrar recursos do AWS WAF Classic para o AWS WAF.

Para obter a versão mais recente do AWS WAF, consulte AWS WAF.

nota

Você não pode usar o Amazon Security Lake para coletar dados do AWS WAF Classic.

Você pode habilitar o registro em log para obter informações detalhadas sobre o tráfego que é analisado pela web ACL. As informações contidas nos logs incluem a hora em que o AWS WAF Classic recebeu a solicitação do seu recurso da AWS, as informações detalhadas sobre a solicitação e a ação para a regra que cada solicitação correspondeu.

Para começar, configure um Amazon Kinesis Data Firehose. Como parte desse processo, selecione um destino para armazenar seus logs. Em seguida, selecione a web ACL para a qual você deseja habilitar o registro em log. Depois de habilitar o registro em log, AWS WAF fornece logs por meio do Firehose para seu destino de armazenamento.

Para obter informações sobre como criar um Amazon Kinesis Data Firehose e revisar seus logs armazenados, consulte O que é o Amazon Data Firehose? Para entender as permissões necessárias para a configuração do Kinesis Data Firehose, consulte Controlar acesso com o Amazon Kinesis Data Firehose.

Você deve ter as seguintes permissões para habilitar o registro em log com êxito:

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • waf:PutLoggingConfiguration

Para obter mais informações sobre funções vinculadas ao serviço e as permissões do iam:CreateServiceLinkedRole, consulte Como usar funções vinculadas a serviços para o AWS WAF Classic.

Para habilitar o registro de uma web ACL
  1. Crie um Amazon Kinesis Data Firehose usando um nome que comece com o prefixo “aws-waf-logs-”. Por exemplo, aws-waf-logs-us-east-2-analytics. Crie o Data Firehose com uma origem PUT e na região em que você está operando. Se você estiver capturando logs para o Amazon CloudFront, crie o firehose na região Leste dos EUA (Norte da Virgínia). Para obter mais informações, consulte Creating an Amazon Data Firehose Delivery Stream.

    Importante

    Não escolha Kinesis stream como sua origem.

    Um log do AWS WAF Classic é equivalente a um registro do Firehose. Se você normalmente receber 10 000 solicitações por segundo e habilitar logs completos, deverá ter uma configuração de 10 000 registros por segundo no Firehose. Se você não configurar o Firehose corretamente, o AWS WAF Classic não registrará todos os logs. Para obter mais informações, consulte Cotas do Amazon Kinesis Data Firehose.

  2. Faça login no AWS Management Console e abra o console do AWS WAF em https://console.aws.amazon.com/wafv2/.

    Se você vir Switch to AWS WAF Classic no painel de navegação, selecione-o.

  3. No painel de navegação, selecione Web ACLs.

  4. Selecione o nome da web ACL para a qual você deseja habilitar o registro em log. Isso abre uma página com os detalhes da web ACL no painel direito.

  5. Na guia Registro em log, selecione Habilitar registro em log.

  6. Habilite o Kinesis Data Firehose criado na primeira etapa. Você deve escolher um Firehose que comece com “aws-waf-logs-”.

  7. (Opcional) Se você não deseja que determinados campos e seus valores sejam incluídos nos logs, edite esses campos. Selecione o campo para editar e, em seguida, selecione Adicionar. Repita conforme necessário para editar campos adicionais. Os campos editados são exibidos como REDACTED nos logs. Por exemplo, se você editar o campo cookie, cookie ele será REDACTED nos logs.

  8. Selecione Habilitar registro em log.

    nota

    Quando você habilitar o registro em log com êxito, o AWS WAF Classic criará uma função vinculada ao serviço com as permissões necessárias para gravar logs no Amazon Kinesis Data Firehose. Para ter mais informações, consulte Como usar funções vinculadas a serviços para o AWS WAF Classic.

Para desabilitar o registro em log de uma web ACL
  1. No painel de navegação, selecione Web ACLs.

  2. Selecione o nome da web ACL para a qual você deseja desabilitar o registro em log. Isso abre uma página com os detalhes da web ACL no painel direito.

  3. Na guia Registro em log, selecione Desabilitar registro em log.

  4. Na caixa de diálogo, selecione Desabilitar registro em log.

exemplo Log de exemplo
{ "timestamp":1533689070589, "formatVersion":1, "webaclId":"385cb038-3a6f-4f2f-ac64-09ab912af590", "terminatingRuleId":"Default_Action", "terminatingRuleType":"REGULAR", "action":"ALLOW", "httpSourceName":"CF", "httpSourceId":"i-123", "ruleGroupList":[ { "ruleGroupId":"41f4eb08-4e1b-2985-92b5-e8abf434fad3", "terminatingRule":null, "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b169-2083-4a91-bbd4-08851a9aaf74"} ], "excludedRules": [ {"exclusionType" : "EXCLUDED_AS_COUNT", "ruleId" : "5432a230-0113-5b83-bbb2-89375c5bfa98"} ] } ], "rateBasedRuleList":[ { "rateBasedRuleId":"7c968ef6-32ec-4fee-96cc-51198e412e7f", "limitKey":"IP", "maxRateAllowed":100 }, { "rateBasedRuleId":"462b169-2083-4a93-bbd4-08851a9aaf30", "limitKey":"IP", "maxRateAllowed":100 } ], "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b181-2011-4a91-bbd4-08851a9aaf52"} ], "httpRequest":{ "clientIp":"192.10.23.23", "country":"US", "headers":[ { "name":"Host", "value":"127.0.0.1:1989" }, { "name":"User-Agent", "value":"curl/7.51.2" }, { "name":"Accept", "value":"*/*" } ], "uri":"REDACTED", "args":"usernam=abc", "httpVersion":"HTTP/1.1", "httpMethod":"GET", "requestId":"cloud front Request id" } }

Veja a seguir uma explicação de cada item listado nesses logs:

timestamp

O timestamp em milissegundos.

formatVersion

A versão do formato do log.

webaclId

O GUID da web ACL.

terminatingRuleId

O ID da regra que encerrou a solicitação. Se nada encerrar a solicitação, o valor será Default_Action.

terminatingRuleType

O tipo de regra que encerrou a solicitação. Valores possíveis: RATE_BASED, REGULAR e GROUP.

ação

A ação. Os valores possíveis para uma regra de encerramento: ALLOW e BLOCK. COUNT não é um valor válido para o encerramento de uma regra.

terminatingRuleMatchDetails

Informações detalhadas sobre a regra de encerramento que correspondeu à solicitação. Uma regra de encerramento tem uma ação que encerra o processo de inspeção em relação a uma solicitação da Web. As ações possíveis para uma regra de encerramento são ALLOW e BLOCK. Isso é preenchido somente para instruções de regra de correspondência de injeção de SQL e cross-site scripting (XSS). Tal como acontece com todas as instruções de regra que inspecionam mais de uma coisa, o AWS WAF aplica a ação na primeira correspondência e para de inspecionar a solicitação da Web. Uma solicitação da Web com uma ação de encerramento pode conter outras ameaças, além da relatada no log.

httpSourceName

A origem da solicitação. Valores possíveis: CF (se a fonte for o Amazon CloudFront), APIGW (se a fonte for o Amazon API Gateway) e ALB (se a fonte for um Application Load Balancer).

httpSourceId

O ID de origem. Este campo mostra o ID da distribuição associada do Amazon CloudFront, a API REST para API Gateway ou o nome de um Application Load Balancer.

ruleGroupList

A lista de grupos de regras que agiram nessa solicitação. No exemplo de código anterior, há apenas um.

ruleGroupId

O ID do grupo de regras. Se a regra bloqueou a solicitação, o ID para ruleGroupID será o mesmo que o ID para terminatingRuleId.

terminatingRule

A regra do grupo de regras que encerrou a solicitação. Se esse for um valor não nulo, ele também conterá um ruleid e uma action (ação). Nesse caso, a ação será sempre BLOCK.

nonTerminatingMatchingRules

A lista de regras do grupo de regras que corresponde à solicitação. Elas sempre serão regras COUNT (regras correspondentes que não são de encerramento).

action (grupo nonTerminatingMatchingRules)

Isso sempre será COUNT (regras correspondentes que não são de encerramento).

ruleId (grupo nonTerminatingMatchingRules)

O ID da regra do grupo de regras que corresponde à solicitação e que não era de encerramento. Ou seja, regras COUNT.

excludedRules

A lista de regras no grupo de regras que você excluiu. A ação para essas regras é definida como COUNT.

exclusionType (grupo de excludedRules)

Um tipo que indica que a regra excluída tem a ação COUNT.

ruleId (grupo de excludedRules)

O ID da regra no grupo de regras que foi excluída.

rateBasedRuleList

A lista de regras baseadas em taxas que agiram na solicitação.

rateBasedRuleId

O ID da regra baseada em taxa que agiu na solicitação. Se isso encerrou a solicitação, o ID para rateBasedRuleId será o mesmo que o ID para terminatingRuleId.

limitKey

O campo que o AWS WAF usa para determinar se as solicitações provavelmente estão chegando de uma única origem e, por isso, sujeitas a uma taxa de monitoramento. Valor possível: IP.

maxRateAllowed

O número máximo de solicitações, que têm o valor idêntico no campo que é especificado por limitKey, permitidas em um período de cinco minutos. Se o número de solicitações exceder maxRateAllowed e os outros predicados especificados na regra também forem atendidos, o AWS WAF acionará a ação especificada para essa regra.

httpRequest

Os metadados sobre a solicitação.

clientIp

O endereço IP do cliente que está enviando a solicitação.

country

O país de origem da solicitação. Se o AWS WAF não conseguir determinar o país de origem, ele definirá esse campo como -.

headers

A lista de cabeçalhos.

uri

O URI da solicitação. Este exemplo de código anterior demonstra qual seria o valor se esse campo tivesse sido editado.

args

A string de consulta.

httpVersion

A versão HTTP.

httpMethod

O método HTTP na solicitação.

requestId

O ID da solicitação.