¿Cómo puedo analizar los registros de flujo de Amazon VPC con Amazon Athena?

5 minutos de lectura
0

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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años