Realizar consultas en los registros de flujo mediante Amazon Athena - Amazon Virtual Private Cloud

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 virtual private clouds (VPC) son los principales interlocutores o puede identificar las direcciones IP con las conexiones TCP más rechazadas.

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.

La plantilla CloudFormation crea los siguientes recursos:

  • 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.

Requirements

  • Debe seleccionar una región que admita AWS Lambda y Amazon Athena.

  • Los buckets de Amazon S3 deben estar en la región seleccionada.

Pricing

Incurre en cargos estándar de Amazon Athena por ejecutar consultas. Incurre en cargos estándar de AWS Lambda por la función de Lambda que carga nuevas particiones en una programación periódica (cuando especifica una frecuencia de carga de partición pero no especifica una fecha de inicio y finalización).

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.

Para generar la plantilla mediante la consola

  1. 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.

  2. 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).

  3. Especifique la frecuencia de carga de la partición. Si elige None (Ninguno), debe especificar la fecha de inicio y finalización de la partición, utilizando fechas anteriores. Si elige 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.

  4. Seleccione o cree un bucket de S3 para la plantilla generada y un bucket de S3 para los resultados de la consulta.

  5. Elija Generate Athena Integration (Generar integración de Athena).

  6. (Opcional) En el mensaje de éxito, elija el vínculo para navegar al bucket especificado para la plantilla de CloudFormation y personalice la plantilla.

  7. 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.

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

  1. Abra la consola de Athena. En el panel Workgroups (Grupos de trabajo) , seleccione el grupo de trabajo creado por la plantilla de CloudFormation.

  2. Seleccione una de las consultas predefinidas, modifique los parámetros según sea necesario y, a continuación, ejecute la consulta.

  3. Abra la consola de Amazon S3. Avance hasta el bucket especificado para los resultados de la consulta y vea los resultados de la consulta.

Consultas predefinidas

Las siguientes son las consultas con el nombre Athena proporcionadas por la plantilla generada de CloudFormation:

  • vpcFlowLogsAcceptedTraffic: las conexiones TCP permitidas en función de los grupos de seguridad y las ACL de red.

  • vpcflowLogsAdminPortTraffic: el tráfico registrado en los puertos de aplicaciones web administrativas.

  • 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.