Consulta de los registros del Equilibrador de carga de red
Utilice Athena para analizar y procesar los registros del Network Load Balancer. Estos registros reciben información detallada de las solicitudes de seguridad de la capa de transporte (TLS) enviadas al Network Load Balancer. Puede utilizar estos registros de acceso para analizar los patrones de tráfico y solucionar problemas.
Antes de analizar los registros de acceso del Network Load Balancer, habilítelos y configúrelos para que se guarden en el bucket de Amazon S3 de destino. Para obtener más información sobre cada entrada del registro de acceso al Equilibrador de carga de red, consulte Registros de acceso al Equilibrador de carga de red.
Para crear la tabla para los registros del Network Load Balancer
-
Copie y pegue la instrucción DDL siguiente en la consola de Athena. Verifique la sintaxis de los registros log del Network Load Balancer. Actualice la instrucción según sea necesario para incluir las columnas y la expresión regular correspondientes a los registros de su registro.
CREATE EXTERNAL TABLE IF NOT EXISTS nlb_tls_logs ( type string, version string, time string, elb string, listener_id string, client_ip string, client_port int, target_ip string, target_port int, tcp_connection_time_ms double, tls_handshake_time_ms double, received_bytes bigint, sent_bytes bigint, incoming_tls_alert int, cert_arn string, certificate_serial string, tls_cipher_suite string, tls_protocol_version string, tls_named_group string, domain_name string, alpn_fe_protocol string, alpn_be_protocol string, alpn_client_preference_list string, tls_connection_creation_time string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*):([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ?([^ ]*)?( .*)?' ) LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
AWS_account_ID
/elasticloadbalancing/region
'; -
Modifique el bucket de Amazon S3
LOCATION
para especificar el destino de los registros del Network Load Balancer. -
Ejecute la consulta en la consola de Athena. Cuando la consulta finaliza, Athena registra la tabla
nlb_tls_logs
y los datos que contiene quedan disponibles para efectuar consultas.
Consultas de ejemplo
Para saber cuántas veces se utiliza un certificado, utilice una consulta similar a la de este ejemplo:
SELECT count(*) AS ct, cert_arn FROM "nlb_tls_logs" GROUP BY cert_arn;
En la siguiente consulta, se muestra la cantidad de usuarios que utilizan una versión de TLS anterior a la versión 1.3:
SELECT tls_protocol_version, COUNT(tls_protocol_version) AS num_connections, client_ip FROM "nlb_tls_logs" WHERE tls_protocol_version < 'tlsv13' GROUP BY tls_protocol_version, client_ip;
Utilice la siguiente consulta para identificar las conexiones que tardan mucho tiempo en completar el protocolo TLS:
SELECT * FROM "nlb_tls_logs" ORDER BY tls_handshake_time_ms DESC LIMIT 10;
Utilice la siguiente consulta para identificar y contar qué versiones del protocolo TLS y suites de cifrado se negociaron en los últimos 30 días.
SELECT tls_cipher_suite, tls_protocol_version, COUNT(*) AS ct FROM "nlb_tls_logs" WHERE from_iso8601_timestamp(time) > current_timestamp - interval '30' day AND NOT tls_protocol_version = '-' GROUP BY tls_cipher_suite, tls_protocol_version ORDER BY ct DESC;