Creación y consulta de una tabla para los registros de alertas
-
Modifique el siguiente ejemplo de instrucción DDL para adaptarlo a la estructura de su registro de alertas. Es posible que tenga que actualizar la instrucción para incluir las columnas de la versión más reciente de los registros. Para obtener más información, consulte Contenido de un registro de firewall en la Guía para desarrolladores de 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
/'; -
Modifique la cláusula
LOCATION
para especificar la carpeta de sus registros en Amazon S3. -
Ejecute la consulta
CREATE TABLE
en el editor de consultas de Athena. Cuando la consulta finaliza, Athena registra la tablanetwork_firewall_alert_logs
, lo que hace que los datos a los que apunta estén listos para las consultas.
Consulta de ejemplo
El ejemplo de consulta del registro de alertas de esta sección filtra los eventos en los que se realizó una inspección de TLS que tienen alertas con un nivel de gravedad igual o superior a 2.
La consulta utiliza alias para crear encabezados de columna de salida que muestran a qué struct
pertenece la columna. Por ejemplo, el encabezado de la columna del campo event.alert.category
es event_alert_category
en lugar de simplemente category
. Para personalizar aún más los nombres de las columnas, puede modificar los alias según sus preferencias. Por ejemplo, puede usar guiones bajos u otros separadores para delimitar los nombres de struct
y los nombres de los campos.
Recuerde modificar los nombres y las referencias a struct
de las columnas en función de la definición de la tabla y de los campos que desee incluir en el resultado de la consulta.
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;