¿Cómo puedo analizar los registros de flujo de Amazon VPC con Amazon Athena?
Quiero analizar mis registros de flujo de Amazon Virtual Private Cloud (Amazon VPC) con Amazon Athena.
Breve descripción
Los registros de flujo de Amazon VPC le permiten capturar información sobre el tráfico IP que entra y sale de las interfaces de red de su VPC. Los registros se pueden utilizar para investigar los patrones de tráfico de la red e identificar las amenazas y los riesgos en la red de Amazon VPC.
Solución
Análisis de los registros de VPC con Athena
Para analizar los registros de acceso mediante Amazon Athena, siga estos pasos:
1.En la pestaña Editor de consultas de la consola de Amazon Athena, cree una base de datos test_db_vpclogs; para ello, ejecute un comando como este:
Importante: Se recomienda crear la base de datos en la misma región de AWS que el bucket de Amazon S3 donde desea guardar los registros de flujo.
CREATE DATABASE test_db_vpclogs;
Nota: Asegúrese de reemplazar test_db_vpclogs por el nombre de la base de datos que desea crear.
2.En la base de datos que ha creado, cree una tabla para los registros de flujo de VPC; para ello, ejecute un comando como el siguiente. Con este comando, puede crear una tabla, fragmentarla y rellenar las particiones automáticamente según su caso de uso mediante una proyección de particiones.
CREATE EXTERNAL TABLE IF NOT EXISTS test_table_vpclogs ( version int, account string, interfaceid string, sourceaddress string, destinationaddress string, sourceport int, destinationport int, protocol int, numpackets int, numbytes bigint, starttime int, endtime int, action string, logstatus string, vpcid string, subnetid string, instanceid string, tcpflags int, type string, pktsrcaddr string, pktdstaddr string, aws_region string, azid string, sublocationtype string, sublocationid string, pktsrcawsservice string, pktdstawsservice string, flowdirection string, trafficpath string ) PARTITIONED BY (region string, day string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LOCATION 's3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/' TBLPROPERTIES ( "skip.header.line.count"="1", "projection.enabled" = "true", "projection.region.type" = "enum", "projection.region.values" = "us-east-1,us-west-2,ap-south-1,eu-west-1", "projection.day.type" = "date", "projection.day.range" = "2021/01/01,NOW", "projection.day.format" = "yyyy/MM/dd", "storage.location.template" = "s3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/${region}/${day}" )
Asegúrese de hacer lo siguiente:
- Reemplace test_table_vpclogs en la consulta por el nombre de su tabla.
- Modifique el parámetro LOCATION en la consulta para que señale al bucket de Amazon S3 que contiene los datos de su registro.
Nota: Si no existe ninguna partición proyectada en Amazon S3, Athena proyectará la partición de todos modos. Se recomienda utilizar atributos con particiones en las consultas.
3.Utilice el Editor de consultas en la consola para ejecutar instrucciones SQL en la tabla. Puede guardar las consultas, ver consultas anteriores o descargar los resultados de las consultas en formato CSV.
Consultas de ejemplo
Nota: Sustituya test_table_vpclogs en las consultas por el nombre de la tabla que ha creado. Modifique los valores de las columnas y otras variables para que se ajusten a su consulta.
1.Para ver las 100 primeras entradas del registro de acceso en orden cronológico durante un período de tiempo determinado, ejecute una consulta similar a la siguiente:
SELECT * FROM test_table_vpclogs WHERE day >= '2021/02/01' AND day < '2021/02/28' ORDER BY time ASC LIMIT 100;
2. Para ver qué servidor recibe los diez primeros paquetes HTTP durante un período de tiempo determinado, ejecute una consulta similar a la siguiente:
SELECT SUM(numpackets) AS packetcount, destinationaddress FROM test_table_vpclogs WHERE destinationport = 443 AND day >= '2021/03/01' AND day < '2021/03/31' GROUP BY destinationaddress ORDER BY packetcount DESC LIMIT 10;
Esta consulta cuenta el número de paquetes recibidos en el puerto HTTPS 443 y los agrupa por dirección IP de destino. A continuación, devuelve las 10 entradas principales de la semana anterior.
3.Para comprobar los registros creados en un período de tiempo determinado, ejecute una consulta similar a la siguiente:
SELECT interfaceid, sourceaddress, action, protocol, to_iso8601(from_unixtime(starttime)) AS start_time, to_iso8601(from_unixtime(endtime)) AS end_time FROM test_table_vpclogs WHERE day >= '2021/04/01' AND day < '2021/04/30';
Esta consulta devuelve los registros creados entre las 11:28:19.000 del 4 de diciembre de 2020 y las 11:28:33.000 del 4 de diciembre de 2020.
4.Para ver los registros de acceso de una dirección IP de origen concreta entre determinados períodos de tiempo, ejecute una consulta similar a la siguiente:
SELECT * FROM test_table_vpclogs WHERE sourceaddress= '10.117.1.22' AND day >= '2021/02/01' AND day < '2021/02/28';
5.Para mostrar un listado con las conexiones TCP rechazadas, ejecute una consulta similar a la siguiente:
SELECT day_of_week(date) AS day, date, interfaceid, sourceaddress, action, protocol FROM test_table_vpclogs WHERE action = 'REJECT' AND protocol = 6 AND day >= '2021/02/01' AND day < '2021/02/28' LIMIT 10;
6.Para ver los registros de acceso del rango de direcciones IP que comienza por «10.117», ejecute una consulta similar a la siguiente:
SELECT * FROM test_table_vpclogs WHERE split_part(sourceaddress,’.’, 1)=’10’ AND split_part(sourceaddress,’.’, 2) =‘117’;
7.Para ver los registros de acceso de una dirección IP de destino concreta dentro de un intervalo de tiempo determinado, ejecute una consulta similar a la siguiente:
SELECT * FROM test_table_vpclogs WHERE destinationaddress= '10.0.1.14' AND day >= '2021/01/01' AND day < '2021/01/31';
Información relacionada
¿Cómo puedo supervisar el tráfico en mi VPC con registros de flujo?
Análisis de los registros de flujo de VPC mediante Amazon Athena y Amazon QuickSight
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- ¿Cómo puedo analizar los registros de flujo de VPC personalizados mediante CloudWatch Logs Insights?OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año