

# Consultar logs de fluxo usando o Amazon Athena
<a name="flow-logs-athena"></a>

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](https://docs.aws.amazon.com/athena/latest/ug/vpc-flow-logs.html) no *Guia do usuário do Amazon Athena*.

**Preços**  
Você incorre em [cobranças padrão do Amazon Athena](https://aws.amazon.com/athena/pricing/) pelas consultas feitas. [Cobranças padrão da AWS Lambda](https://aws.amazon.com/lambda/pricing/) 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).

**Topics**
+ [Gerar o modelo do CloudFormation usando o console](flow-logs-generate-template-console.md)
+ [Gerar o modelo do CloudFormation usando a AWS CLI](flow-logs-generate-template-cli.md)
+ [Executar uma consulta predefinida](flow-logs-run-athena-query.md)

# Gerar o modelo do CloudFormation usando o console
<a name="flow-logs-generate-template-console"></a>

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.

1. 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).

1. 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.

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

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

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

1. Na mensagem de êxito, escolha **Create CloudFormation stack** (Criar pilha do CloudFormation) para abrir o assistente **Create Stack** (Criar pilha) no console do 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](flow-logs-run-athena-query.md#predefined-queries).
+ 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
<a name="flow-logs-generate-template-cli"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-flow-logs-integration-template.html) 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](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) 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
<a name="flow-logs-run-athena-query"></a>

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.

1. No painel de navegação, selecione **Query editor** (Editor de consultas). Em **Workgroup** (Grupo de trabalho), selecione o grupo de trabalho criado pelo modelo do CloudFormation.

1. Selecione **Saved queries** (Consultas salvas), selecione uma consulta, modifique os parâmetros conforme necessário e execute a consulta. Para obter uma lista das consultas predefinidas disponíveis, consulte [Predefined queries](#predefined-queries) (Consultas predefinidas).

1. Em **Query results** (Resultados da consulta), veja os resultados da consulta.

## Consultas predefinidas
<a name="predefined-queries"></a>

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.