Consultar logs de fluxo usando o Amazon Athena - Amazon Virtual Private Cloud

Consultar logs de fluxo usando o Amazon Athena

O Amazon Athena é um serviço de consulta interativa que permite analisar dados no Amazon S3, como seus logs de fluxo, usando o SQL padrão. Você pode usar o Athena com o VPC Flow Logs para obter rapidamente insights acionáveis sobre o tráfego que atravessa a sua VPC. Por exemplo, você pode identificar quais recursos em suas virtual private clouds (VPCs) são os principais locutores ou identificar os endereços IP com as conexões TCP mais rejeitadas.

Opções

  • Você pode simplificar e automatizar a integração dos logs de fluxo da VPC com o Athena gerando um modelo do CloudFormation que cria os recursos necessários da AWS e as consultas predefinidas que você pode executar para obter insights sobre o tráfego que atravessa a VPC.

  • Você pode criar suas próprias consultas usando o Athena. Para obter mais informações, consulte Consulta de logs de fluxo usando o Amazon Athena no Guia do usuário do Amazon Athena.

Preços

Você incorre em cobranças padrão do Amazon Athena pelas consultas feitas. Cobranças padrão da AWS Lambda serão aplicadas à função do Lambda que carrega novas partições em uma programação recorrente (para quando você especifica uma frequência de carregamento de partição, mas deixa de especificar uma data de início e término).

Gerar o modelo do CloudFormation usando o console

Depois que os primeiros logs de fluxo forem entregues ao seu bucket do S3, você pode integrar ao Athena gerando um modelo do CloudFormation e usando o modelo para criar uma pilha.

Requisitos

  • A região selecionada deve ser compatível com o AWS Lambda e o Amazon Athena.

  • Os buckets do Amazon S3 devem estar na região selecionada.

  • O formato de registro de log para o log de fluxo deve incluir os campos usados pelas consultas predefinidas específicas que você desejar executar.

Para gerar o modelo usando o console

  1. Execute um destes procedimentos:

    • Abra o console da Amazon VPC. No painel de navegação, escolha Your VPCs (Suas VPCs) e, em seguida, selecione a sua VPC.

    • Abra o console da Amazon VPC. No painel de navegação, escolha Subnets (Sub-redes) e, em seguida, selecione a sua sub-rede.

    • Abra o console do Amazon EC2. No painel de navegação, escolha Network Interfaces (Interfaces de rede) e, em seguida, selecione a sua interface de rede.

  2. Na guia Flow logs (Logs de fluxo), selecione um log de fluxo que publica no Amazon S3 e, em seguida, escolha Actions (Ações) e Generate Athena integration (Gerar integração ao Athena).

  3. Especifique a frequência de carregamento da partição. Se escolher None (Nenhum), você deve especificar as datas de início e término da partição, usando datas do passado. Se escolher Daily (Diário), Weekly (Semanal) ou Monthly (Mensal), as datas de início e término da partição serão opcionais. Se você não especificar datas de início e término, o modelo do CloudFormation cria uma função do Lambda que carrega novas partições em uma programação recorrente.

  4. Selecione ou crie um bucket do S3 para o modelo gerado e um bucket do S3 para os resultados da consulta.

  5. Escolha Generate Athena integration (Gerar integração ao Athena).

  6. (Opcional) Na mensagem de êxito, escolha o link para navegar até o bucket que especificou para o modelo do CloudFormation e personalize o modelo.

  7. Na mensagem de êxito, escolha Create CloudFormation stack (Criar pilha do CloudFormation) para abrir o assistente Create Stack (Criar pilha) no console do AWS CloudFormation. A URL do modelo do CloudFormation gerado é especificado na seção Template (Modelo). Conclua o assistente para criar os recursos especificados no modelo.

Recursos desenvolvidos pelo modelo do CloudFormation

  • Um banco de dados do Athena. O nome do banco de dados é vpcflowlogsathenadatabase<flow-logs-subscription-id>.

  • Um grupo de trabalho do Athena. O nome do grupo de trabalho é <flow-log-subscription-id><partition-load-frequency><start-date><end-date>workgroup

  • Uma tabela particionada do Athena que corresponde aos seus registros de log de fluxo. O nome da tabela é <flow-log-subscription-id><partition-load-frequency><start-date><end-date>.

  • Um conjunto de consultas nomeadas do Athena. Para obter mais informações, consulte Consultas predefinidas.

  • Uma função do Lambda que carrega novas partições para a tabela de acordo com a programação especificada (diária, semanal ou mensal).

  • Uma função do IAM que concede permissão para executar as funções do Lambda.

Gerar o modelo do CloudFormation usando a AWS CLI

Depois que os primeiros logs de fluxo forem entregues ao bucket do S3, você poderá gerar e usar um modelo do CloudFormation para fazer a integração ao Athena.

Use o comando a seguir get-flow-logs-integration-template para gerar o modelo do CloudFormation.

aws ec2 get-flow-logs-integration-template --cli-input-json file://config.json

Este é um exemplo do arquivo config.json.

{ "FlowLogId": "fl-12345678901234567", "ConfigDeliveryS3DestinationArn": "arn:aws:s3:::my-flow-logs-athena-integration/templates/", "IntegrateServices": { "AthenaIntegrations": [ { "IntegrationResultS3DestinationArn": "arn:aws:s3:::my-flow-logs-analysis/athena-query-results/", "PartitionLoadFrequency": "monthly", "PartitionStartDate": "2021-01-01T00:00:00", "PartitionEndDate": "2021-12-31T00:00:00" } ] } }

Use o comando a seguir create-stack para criar uma pilha usando o modelo do CloudFormation gerado.

aws cloudformation create-stack --stack-name my-vpc-flow-logs --template-body file://my-cloudformation-template.json

Executar uma consulta predefinida

O modelo do CloudFormation gerado fornece um conjunto de consultas predefinidas que você pode realizar para obter rapidamente insights significativos sobre o tráfego em sua rede da AWS. Depois de criar a pilha e verificar se todos os recursos foram criados corretamente, você pode realizar uma das consultas predefinidas.

Para realizar uma consulta predefinida usando o console

  1. Abra o console do Athena. No painel Workgroups (Grupos de trabalho), selecione o grupo de trabalho criado pelo modelo do CloudFormation.

  2. Selecione uma das consultas predefinidas, modifique os parâmetros conforme necessário e, então, execute-a.

  3. Abra o console do Amazon S3. Navegue até o bucket que você especificou para os resultados da consulta e visualize os resultados da consulta.

Consultas predefinidas

A seguir, uma lista completa das consultas nomeadas do Athena. As consultas predefinidas fornecidas quando você gera o modelo dependem dos campos que fazem parte do formato de registro de log para o log de fluxo. Assim sendo, o modelo pode não conter todas essas consultas predefinidas.

  • VPCFlowLogsAcceptedTraffic: as conexões TCP que foram permitidas com base nos seus grupos de segurança e ACLs de rede.

  • VpcFlowLogsAdminPortTraffic: os 10 principais endereços IP com mais tráfego, conforme registrado por aplicações que atendem solicitações em portas administrativas.

  • VPCFlowLogsiPv4Traffic: o total registrado de bytes de tráfego IPv4.

  • VPCFlowLogsiPv6Traffic: o total registrado de bytes de tráfego IPv6.

  • VPCFlowLogsRejectedTCPTraffic: as conexões TCP que foram rejeitadas com base nos seus grupos de segurança ou ACLs de rede.

  • VPCFlowLogsRejectedTraffic: o tráfego que foi rejeitado com base nos seus grupos de segurança ou ACLs de rede.

  • VPCFlowLogsShrdpTraffic: o tráfego SSH e RDP.

  • VPCFlowLogStopTalkers: os 50 endereços IP com mais tráfego registrado.

  • VPCFlowLogStopTalkersPacketLevel: os 50 endereços IP no nível de pacote com mais tráfego registrado.

  • VPCFlowLogStoptalkingInstances: os IDs das 50 instâncias com mais tráfego registrado.

  • VPCFlowLogStopTalkingSubnets: os IDs das 50 sub-redes com mais tráfego registrado.

  • VPCFlowLogStoptCPTraffic: todo o tráfego TCP registrado para um endereço IP de origem.

  • VPCFlowLogsTotalByTestransFerred: os 50 pares de endereços IP de origem e destino com mais bytes registrados.

  • VPCFlowLogsTotalByTestRansFerredPacketLevel: os 50 pares de endereços IP de origem e destino no nível de pacote com mais bytes registrados.

  • VPCFlowLogsTrafficFrmsRcaddr: o tráfego registrado para um endereço IP de origem específico.

  • VPCFlowLogsTrafficTodStaddr: o tráfego registrado para um endereço IP de destino específico.