Eine Tabelle für Netzwerkfluss-Protokolle erstellen und abfragen
-
Ändern Sie die folgende DDL-Beispielanweisung so, dass sie der Struktur Ihrer Netzwerkfluss-Protokolle entspricht. Möglicherweise müssen Sie die Anweisung so aktualisieren, dass sie die Spalten für die neueste Version der Protokolle enthält. Weitere Informationen finden Sie unter Inhalt eines Firewall-Protokolls im AWS Network Firewall-Entwicklerhandbuch.
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/'; -
Ändern Sie die
LOCATION-Klausel, um den Ordner für Ihre Protokolle in Amazon S3 anzugeben. -
Führen Sie die
CREATE TABLE-Abfrage im Athena-Abfrage-Editor aus. Nach Abschluss der Abfrage registriert Athena dienetwork_firewall_netflow_logs-Tabelle, sodass die Daten, auf die sie verweist, für Abfragen bereitstehen.
Beispielabfrage
Das Beispiel für eine Netzwerkfluss-Protokollabfrage in diesem Abschnitt filtert nach Ereignissen, bei denen eine TLS-Überprüfung durchgeführt wurde.
Die Abfrage verwendet Aliase, um Ausgabespaltenüberschriften zu erstellen, die das struct anzeigen, zu dem die Spalte gehört. Beispielsweise lautet die Spaltenüberschrift für das event.netflow.bytes-Feld event_netflow_bytes statt nur bytes. Um die Spaltennamen weiter anzupassen, können Sie die Aliase an Ihre Präferenzen anpassen. Sie können beispielsweise Unterstriche oder andere Trennzeichen verwenden, um die struct-Namen und Feldnamen abzugrenzen.
Denken Sie daran, Spaltennamen und struct-Verweise auf der Grundlage Ihrer Tabellendefinition und der Felder, die Sie im Abfrageergebnis haben möchten, zu ändern.
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