Création et interrogation d’une table pour les journaux Netflow - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création et interrogation d’une table pour les journaux Netflow

  1. Modifiez l’exemple d’instruction DDL suivant pour qu’il soit conforme à la structure de vos journaux Netflow. Il se peut que vous deviez mettre à jour l'instruction pour inclure les colonnes de la dernière version des journaux. Pour plus d'informations, consultez la rubrique Contenu d'un journal de pare-feu du Guide du développeur 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. Modifiez la clause LOCATION pour spécifier le dossier de vos journaux dans Amazon S3.

  3. Exécutez la requête CREATE TABLE dans l’éditeur de requête Athena. Une fois la requête terminée, Athena enregistre la table network_firewall_netflow_logs afin que les données vers lesquelles elle pointe soient prêtes pour les interrogations.

Exemple de requête

L’exemple de requête de journal Netflow présenté dans cette section filtre les événements qui ont fait l’objet d’une inspection TLS a été effectuée.

La requête utilise des alias pour créer des en-têtes de colonne de sortie indiquant la structure (struct) à laquelle appartient la colonne. Par exemple, l’en-tête de colonne du champ event.netflow.bytes est event_netflow_bytes, et pas simplement bytes. Pour personnaliser davantage les noms de colonne, vous pouvez modifier les alias en fonction de vos préférences. Par exemple, vous pouvez utiliser des traits de soulignement ou d’autres séparateurs pour délimiter les noms de struct et de champ.

N’oubliez pas de modifier les noms de colonne et les références struct en fonction de la définition de votre table et des champs que vous souhaitez intégrer aux résultats de la requête.

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