Realizar consultas en los registros de flujo mediante Amazon Athena
Amazon Athena es un servicio de consulta interactivo que le permite analizar datos en Amazon S3, como los logs de flujo, mediante SQL estándar. Puede utilizar Athena con los logs de flujo de VPC para obtener rápidamente información útil sobre el tráfico que fluye a través de su VPC. Por ejemplo, puede identificar qué recursos de sus nubes privadas virtuales (VPC) son los principales interlocutores o puede identificar las direcciones IP con las conexiones TCP más rechazadas.
Opciones
-
Puede optimizar y automatizar la integración de los registros de flujo de VPC con Athena generando una plantilla de CloudFormation que cree los recursos de AWS necesarios, además de consultas predefinidas que puede ejecutar para obtener información sobre el tráfico que fluye a través de la VPC.
-
Puede crear sus propias consultas con Athena. Para obtener más información, consulte Realizar consultas en los registros de flujo mediante Amazon Athena en la Guía del usuario de Amazon Athena.
Precios
Incurre en cargos estándar de Amazon Athena
Para utilizar las consultas predefinidas
Generar la plantilla de CloudFormation mediante la consola
Después de entregar los primeros logs de flujo a su bucket de S3, puede integrarse con Athena generando una plantilla de CloudFormation y utilizando la plantilla para crear una pila.
Requisitos
-
La región seleccionada debe admitir AWS Lambda y Amazon Athena.
-
Los buckets de Amazon S3 deben estar en la región seleccionada.
-
El formato del registro de registro para el registro de flujo debe incluir los campos utilizados por las consultas predefinidas específicas que desea ejecutar.
Para generar la plantilla mediante la consola
-
Aplique alguna de las siguientes acciones:
-
Abra la consola de Amazon VPC. En el panel de navegación, elija Your VPCs (Sus VPC) y, a continuación seleccione su VPC,
-
Abra la consola de Amazon VPC. En el panel de navegación, elija Subnets (Subredes) y, a continuación, seleccione la suya.
-
Abra la consola de Amazon EC2. En el panel de navegación, elija Network Interfaces (Interfaces de red) y, a continuación, seleccione su interfaz de red.
-
-
En la pestaña Flow logs (Logs de flujo) , seleccione un log de flujo que se publique en Amazon S3 y, a continuación, elija Actions (Acciones), Generate Athena integration (Generar integración de Athena).
-
Especifique la frecuencia de carga de la partición. Si elija None (Ninguno), debe especificar la fecha de inicio y finalización de la partición, utilizando fechas anteriores. Si elija Daily (Diaria), Weekly (Semanal)o Monthly (Mensual), las fechas de inicio y finalización de la partición son opcionales. Si no especifica fechas de inicio y finalización, la plantilla de CloudFormation crea una función Lambda que carga nuevas particiones con una programación recurrente.
-
Seleccione o cree un bucket de S3 para la plantilla generada y un bucket de S3 para los resultados de la consulta.
-
Elija Generate Athena Integration (Generar integración de Athena).
-
(Opcional) En el mensaje de éxito, elija el vínculo para navegar al bucket especificado para la plantilla de CloudFormation y personalice la plantilla.
-
En el mensaje de éxito, elija Create CloudFormation stack (Crear pila de CloudFormation) para abrir el asistente Create Stack (Crear pila) en la consola de AWS CloudFormation. La dirección URL de la plantilla de CloudFormation generada se especifica en la sección Template (Plantilla) . Complete el asistente para crear los recursos especificados en la plantilla.
Recursos creados por la plantilla de CloudFormation
-
Una base de datos de Athena. El nombre de la base de datos es vpcflowlogsathenadatabase<flow-logs-subscription-id>.
-
Un grupo de trabajo de Athena. El nombre del grupo de trabajo es <flow-log-subscription-id><partition-load-frequency><start-date><end-date>workgroup
-
Una tabla Athena particionada que corresponde a sus registros del log de flujo. El nombre de la tabla es <flow-log-subscription-id><partition-load-frequency><start-date><end-date>.
-
Un conjunto de consultas llamadas Athena. Para obtener más información, consulte Consultas predefinidas.
-
Una función Lambda que carga nuevas particiones en la tabla según la programación especificada (diaria, semanal o mensual).
-
Una función de IAM que otorga permiso para ejecutar las funciones Lambda.
Generar la plantilla de CloudFormation mediante la AWS CLI
Después de entregar los primeros logs de flujo a su bucket de S3, puede generar y utilizar una plantilla de CloudFormation para integrarse con Athena.
Utilice el siguiente comando get-flow-logs-integration-template para generar la plantilla de CloudFormation.
aws ec2 get-flow-logs-integration-template --cli-input-json file://config.json
A continuación se muestra un ejemplo del archivo config.json
.
{ "FlowLogId": "fl-12345678901234567", "ConfigDeliveryS3DestinationArn": "arn:aws:s3:::my-flow-logs-athena-integration/templates/", "IntegrateServices": { "AthenaIntegrations": [ { "IntegrationResultS3DestinationArn": "arn:aws:s3:::my-flow-logs-analysis/athena-query-results/", "PartitionLoadFrequency": "monthly", "PartitionStartDate": "2021-01-01T00:00:00", "PartitionEndDate": "2021-12-31T00:00:00" } ] } }
Utilice el siguiente comando create-stack para crear una pila utilizando la plantilla de CloudFormation generada.
aws cloudformation create-stack --stack-name my-vpc-flow-logs --template-body file://my-cloudformation-template.json
Ejecutar una consulta predefinida
La plantilla de CloudFormation generada proporciona un conjunto de consultas predefinidas que puede ejecutar para obtener rápidamente información significativa sobre el tráfico de su red de AWS. Después de crear la pila y comprobar que todos los recursos se han creado correctamente, puede ejecutar una de las consultas predefinidas.
Para ejecutar una consulta predefinida mediante la consola
-
Abra la consola de Athena.
-
En el panel de navegación izquierdo, elija Query Editor (Editor de consultas). En Workgroup (Grupo de trabajo), seleccione el grupo de trabajo creado por la plantilla de CloudFormation.
-
Seleccione Saved queries (Consultas guardadas), seleccione una consulta, modifique los parámetros según sea necesario y, a continuación, ejecute la consulta. Para obtener una lista de las consultas predefinidas disponibles, consulte Predefined queries (Consultas predefinidas).
-
En Query results (Resultados de consulta), consulte los resultados de la consulta.
Consultas predefinidas
La siguiente es la lista completa de consultas llamadas Athena. Las consultas predefinidas que se proporcionan al generar la plantilla dependen de los campos que forman parte del formato de la entrada de registro del registro de flujo. Por lo tanto, es posible que la plantilla no contenga todas estas consultas predefinidas.
vpcFlowLogsAcceptedTraffic: las conexiones TCP permitidas en función de los grupos de seguridad y las ACL de red.
VpcFlowLogsAdminPortTraffic: las 10 direcciones IP con más tráfico, registradas por las aplicaciones que atienden solicitudes en los puertos administrativos.
vPCFlowLogsipv4Traffic: el total de bytes del tráfico IPv4 registrado.
vPCFlowLogsiPV6Traffic: el total de bytes del tráfico IPv6 registrado.
vpcFlowLogsRejectedTCPTraffic: las conexiones TCP que se rechazaron en función de los grupos de seguridad o las ACL de red.
vpcFlowLogsRejectedTraffic: el tráfico que se rechazó en función de los grupos de seguridad o las ACL de red.
vpcFlowLogssShrdpTraffic: el tráfico SSH y RDP.
vpcFlowLogStopTalkers: las 50 direcciones IP con la mayor cantidad de tráfico registrado.
vPCFlowLogStopTalkerSpacketLevel: las 50 direcciones IP de nivel de paquete con la mayor cantidad de tráfico registrado.
vPCFlowLogStopTalkingInstances: las ID de las 50 instancias con la mayor cantidad de tráfico registrado.
vpcFlowLogStopTalkingSubnets: las ID de las 50 subredes con la mayor cantidad de tráfico registrado.
vpcflowLogStoptCPTraffic: todo el tráfico TCP registrado para una dirección IP de origen.
vpcFlowLogsTotalByteTransferred los 50 pares de direcciones IP de origen y destino con la mayoría de bytes registrados.
vpcFlowLogsTotalByTestransferredPacketLevel: los 50 pares de direcciones IP de origen y destino a nivel de paquete con la mayor cantidad de bytes registrados.
vpcFlowLogsTrafficFrmsrcAddr: el tráfico registrado para una dirección IP de origen específica.
vpcFlowLogsTrafficToStaddr: el tráfico registrado para una dirección IP de destino específica.