Creare ed eseguire query in una tabella per i log di avvisi - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare ed eseguire query in una tabella per i log di avvisi

  1. Modificare la seguente istruzione DDL di esempio in modo che sia conforme alla struttura del log di avvisi. Potrebbe essere necessario aggiornare l'istruzione per includere le colonne per la versione più recente dei log. Per ulteriori informazioni, consulta Contenuti di un log firewall nella Guida per gli sviluppatori di AWS Network Firewall.

    CREATE EXTERNAL TABLE network_firewall_alert_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, sni:string, tls_inspected:boolean, tls_error:struct< error_message:string>, revocation_check:struct< leaf_cert_fpr:string, status:string, action:string>, alert:struct< alert_id:string, alert_type:string, action:string, signature_id:int, rev:int, signature:string, category:string, severity:int, rule_name:string, alert_name:string, alert_severity:string, alert_description:string, file_name:string, file_hash:string, packet_capture:string, reference_links:array<string> >, src_country:string, dest_country:string, src_hostname:string, dest_hostname:string, user_agent:string, url:string > ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket/path_to_alert_logs_folder/';
  2. Modificare la frase LOCATION per specificare la cartella per i log in Amazon S3.

  3. Eseguire la query CREATE TABLE nell'editor di query Athena. Una volta completata la query, Athena registra la tabella network_firewall_alert_logs, rendendo i dati in essa contenuti pronti per le query.

Query di esempio

L'esempio di query del log degli avvisi in questa sezione filtra gli eventi in cui è stata eseguita l'ispezione TLS che presentano avvisi con un livello di gravità pari o superiore a 2.

La query utilizza alias per creare intestazioni di colonna di output che mostrano a cosa appartiene la colonna struct. Ad esempio, l'intestazione di colonna del campo event.alert.category è event_alert_category invece di una semplice category. Per personalizzare ulteriormente i nomi delle colonne, è possibile modificare gli alias in base alle proprie preferenze. Ad esempio, è possibile utilizzare caratteri di sottolineatura o altri separatori per delimitare i nomi struct e i nomi dei campi.

Ricordarsi di modificare i nomi e i riferimenti struct delle colonne in base alla definizione della tabella e ai campi che si desidera inserire nel risultato della query.

SELECT firewall_name, availability_zone, event_timestamp, event.timestamp AS event_timestamp, event.flow_id AS event_flow_id, event.event_type AS event_type, event.src_ip AS event_src_ip, event.src_port AS event_src_port, event.dest_ip AS event_dest_ip, event.dest_port AS event_dest_port, event.proto AS event_protol, event.app_proto AS event_app_proto, event.sni AS event_sni, event.tls_inspected AS event_tls_inspected, event.tls_error.error_message AS event_tls_error_message, event.revocation_check.leaf_cert_fpr AS event_revocation_leaf_cert, event.revocation_check.status AS event_revocation_check_status, event.revocation_check.action AS event_revocation_check_action, event.alert.alert_id AS event_alert_alert_id, event.alert.alert_type AS event_alert_alert_type, event.alert.action AS event_alert_action, event.alert.signature_id AS event_alert_signature_id, event.alert.rev AS event_alert_rev, event.alert.signature AS event_alert_signature, event.alert.category AS event_alert_category, event.alert.severity AS event_alert_severity, event.alert.rule_name AS event_alert_rule_name, event.alert.alert_name AS event_alert_alert_name, event.alert.alert_severity AS event_alert_alert_severity, event.alert.alert_description AS event_alert_alert_description, event.alert.file_name AS event_alert_file_name, event.alert.file_hash AS event_alert_file_hash, event.alert.packet_capture AS event_alert_packet_capture, event.alert.reference_links AS event_alert_reference_links, event.src_country AS event_src_country, event.dest_country AS event_dest_country, event.src_hostname AS event_src_hostname, event.dest_hostname AS event_dest_hostname, event.user_agent AS event_user_agent, event.url AS event_url FROM network_firewall_alert_logs WHERE event.alert.severity >= 2 AND event.tls_inspected = true LIMIT 10;