Criar e consultar uma tabela para logs de fluxo de rede - Amazon Athena

Criar e consultar uma tabela para logs de fluxo de rede

  1. Modifique o exemplo de instrução DDL a seguir para se adequar à estrutura do seu log de fluxo de redes. Pode ser necessário atualizar a instrução para incluir as colunas da versão mais recente dos logs. Para obter mais informações, consulte Conteúdo de um log de firewall no Guia do desenvolvedor do AWS Network Firewall.

    CREATE EXTERNAL TABLE network_firewall_netflow_logs ( firewall_name string, availability_zone string, event_timestamp string, event struct< timestamp:string, flow_id:bigint, event_type:string, src_ip:string, src_port:int, dest_ip:string, dest_port:int, proto:string, app_proto:string, tls_inspected:boolean, netflow:struct< pkts:int, bytes:bigint, start:string, `end`:string, age:int, min_ttl:int, max_ttl:int, tcp_flags:struct< syn:boolean, fin:boolean, rst:boolean, psh:boolean, ack:boolean, urg:boolean > > > ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket/path_to_netflow_logs_folder/';
  2. Modifique a cláusula LOCATION para especificar a pasta para seus logs no Amazon S3.

  3. Execute a consulta CREATE TABLE no editor de consultas do Athena. Depois que a consulta for concluída, o Athena registrará a tabela network_firewall_netflow_logs, preparando os dados para os quais ela direciona para as consultas.

Consulta de exemplo

O exemplo de consulta de log do Netflow nesta seção filtra os eventos nos quais a inspeção TLS foi realizada.

A consulta usa aliases para criar cabeçalhos de coluna de saída que mostram o struct ao qual a coluna pertence. Por exemplo, o título da coluna do campo event.netflow.bytes é event_netflow_bytes em vez de apenasbytes. Para personalizar ainda mais os nomes das colunas, você pode modificar os aliases de acordo com suas preferências. Por exemplo, você pode usar sublinhados ou outros separadores para delimitar os nomes de struct e os nomes dos campos.

Lembre-se de modificar os nomes de colunas e as referências de struct com base na definição da tabela e nos campos que você deseja no resultado da consulta.

SELECT event.src_ip AS event_src_ip, event.dest_ip AS event_dest_ip, event.proto AS event_proto, event.app_proto AS event_app_proto, event.tls_inspected AS event_tls_inspected, event.netflow.pkts AS event_netflow_pkts, event.netflow.bytes AS event_netflow_bytes, event.netflow.tcp_flags.syn AS event_netflow_tcp_flags_syn FROM network_firewall_netflow_logs WHERE event.tls_inspected = true