VPC Flow Logs ist eine Funktion von Cloud-Diensten wie Amazon Web Services (AWS), mit der sich Informationen zum IP-Verkehr erfassen lassen, der von und zu Netzwerkschnittstellen in einer Virtual Private Cloud (VPC) fließt. Diese Logs kommen für Netzwerk-Monitoring, Sicherheitsanalysen und Troubleshooting zum Einsatz. Einmal aktiviert, liefern sie Daten wie Quelle, Ziel und Protokoll des Datenverkehrs sowie die Anzahl der übertragenen Bytes. Diese Informationen sind entscheidend, um die Netzwerkaktivität in einer VPC nachzuvollziehen, und werden häufig genutzt, um auffällige Verkehrsmuster oder potenzielle Sicherheitsbedrohungen zu erkennen.
VPC Flow Logs ist eine AWS-Funktion zur Erfassung von IP-Verkehrsinformationen. Durch die Analyse dieser Logs können Administratoren bösartige Aktivitäten wie Netzwerk-Reconnaissance, unautorisierte Datenexfiltration und unerwartete Verkehrsmuster aufspüren. Sie helfen außerdem dabei, Netzwerkrichtlinien und gesetzliche Vorgaben einzuhalten. So können Unternehmen anhand von Flow Logs etwa prüfen, ob ihre Netzwerkkonfigurationen den eigenen Sicherheitsstandards und regulatorischen Anforderungen entsprechen. Darüber hinaus sind die Logs wertvoll für Performance-Analysen und unterstützen Administratoren dabei, Netzwerkverkehr und Ressourcenzuweisung innerhalb der VPC zu optimieren.
Es gibt mehrere AWS-Dienste, mit denen sich VPC Flow Logs abfragen lassen, darunter Amazon Athena, Amazon CloudWatch Logs, AWS ElasticSearch Service, Amazon QuickSight, AWS Glue und Amazon Redshift. In diesem Blogpost zeige ich, wie Sie die Athena- und S3-Integration mit AWS CloudFormation einrichten.
AWS Athena ist ein interaktiver Abfrageservice, mit dem Sie Daten direkt in Amazon S3 per Standard-SQL analysieren. Mit Athena lassen sich auch VPC Flow Logs abfragen, die in S3-Buckets liegen. Das ist besonders praktisch für komplexe Abfragen und Ad-hoc-Analysen, denn Athena ist serverless und benötigt keine eigene Infrastruktur.
Bislang war das Athena-Setup recht aufwendig, und S3 musste manuell als Datenquelle eingebunden werden. Auch beim Abfragen der Logs mussten Sie die Queries selbst schreiben, um an die richtigen Daten zu kommen. AWS hat diesen Prozess vereinfacht: Es lässt sich nun ein CloudFormation-Template inklusive mehrerer vordefinierter Abfragen generieren, das detaillierte Einblicke in den Datenverkehr liefert.
So gehen Sie dabei vor:
Schritt 1: VPC Flow Logs aktivieren
Nachfolgend sehen Sie alle Einstellungen, die Sie zum Aktivieren der VPC Flow Logs benötigen. Sobald sie aktiv sind, wechseln Sie in den ausgewählten S3-Bucket und prüfen, ob Logs eingehen.

VPC Flow Logs aktivieren
Schritt 2: CloudFormation-Template über die Konsole generieren
Wechseln Sie zu Ihrer VPC, wählen Sie im Tab "Flow Logs" einen Flow Log aus, der nach Amazon S3 publiziert, und klicken Sie auf Actions > Generate Athena integration.

Athena-Integration generieren
Nach dem Klick auf "Generate Athena Integration" tragen Sie im nächsten Bereich die relevanten Details ein. Ich habe denselben S3-Bucket für das CloudFormation-Template und die Query Results genutzt. Sie können dafür aber auch separate Buckets verwenden.

S3-Bucket-Auswahl für die Athena-Integration
Schritt 2: CloudFormation-Stack erstellen
Sobald Sie auf "Generate Athena Integration" klicken, können Sie auf der nächsten Seite über den Button "Create CloudFormation stack" oben rechts einen CloudFormation-Stack anlegen. Achtung: Schließen Sie das grüne Pop-up nicht, sonst müssen Sie den gesamten Vorgang erneut durchlaufen.

CloudFormation-Stack erstellen 1
Sobald Sie auf "Create CloudFormation Stack" klicken, gelangen Sie zur AWS-CloudFormation-Seite.
Klicken Sie dort einfach auf Next.

CloudFormation-Stack erstellen 2
Vergeben Sie einen beliebigen Stack-Namen und klicken Sie auf Next.

CloudFormation-Stack erstellen 3
Im nächsten Fenster lassen Sie alle Einstellungen unverändert und klicken auf Next.

CloudFormation-Stack erstellen 4
Prüfen Sie, ob alle Eingaben korrekt sind, setzen Sie das Häkchen bei "I acknowledge" und klicken Sie auf Submit.

CloudFormation-Stack erstellen 5
Warten Sie, bis der Stack vollständig erstellt ist.

CloudFormation-Stack erstellen 6
Sobald der Stack steht, wechseln Sie zu Athena. Dort sehen Sie die VPC-Flow-Log-Datenbank, die nun mit Athena abgefragt werden kann. Falls die Warnung zum Speicherort der Abfrageergebnisse erscheint, klicken Sie einfach auf "Edit Settings" und wählen den Bucket aus, in dem die Query Results landen sollen. Ich habe denselben S3-Bucket genutzt, den ich für die VPC Flow Logs angelegt hatte.

CloudFormation-Stack erstellen 7
Schritt 3: Vordefinierte Abfrage ausführen
Wählen Sie in Athena links in der Navigation den Query Editor und anschließend die Workgroup, die unser CloudFormation-Template angelegt hat.

Vordefinierte Abfrage ausführen 1
Wenn Sie nun auf Saved Queries klicken, finden Sie mehrere vorgefertigte Abfragen samt Beschreibung der jeweils gelieferten Insights.

Vordefinierte Abfrage ausführen 2
In meinem Screenshot oben sehen Sie weniger Abfragen, weil ich meinen Sandbox-Account verwende. Je nachdem, welche Daten Ihre VPC Flow Logs enthalten, werden bei Ihnen entsprechend mehr Abfragen angezeigt. Nachfolgend die Liste der bereitgestellten Abfragen.
- VpcFlowLogsAcceptedTraffic — Die TCP-Verbindungen, die anhand Ihrer Security Groups und Network ACLs zugelassen wurden.
- VpcFlowLogsAdminPortTraffic — Die Top-10-IP-Adressen mit dem meisten Traffic, erfasst von Anwendungen, die Anfragen auf administrativen Ports beantworten.
- VpcFlowLogsIPv4Traffic — Die Gesamtzahl der erfassten IPv4-Traffic-Bytes.
- VpcFlowLogsIPv6Traffic — Die Gesamtzahl der erfassten IPv6-Traffic-Bytes.
- VpcFlowLogsRejectedTCPTraffic — Die TCP-Verbindungen, die anhand Ihrer Security Groups oder Network ACLs abgewiesen wurden.
- VpcFlowLogsRejectedTraffic — Der Traffic, der anhand Ihrer Security Groups oder Network ACLs abgewiesen wurde.
- VpcFlowLogsSshRdpTraffic — Der SSH- und RDP-Traffic.
- VpcFlowLogsTopTalkers — Die 50 IP-Adressen mit dem meisten erfassten Traffic.
- VpcFlowLogsTopTalkersPacketLevel — Die 50 IP-Adressen auf Paketebene mit dem meisten erfassten Traffic.
- VpcFlowLogsTopTalkingInstances — Die IDs der 50 Instanzen mit dem meisten erfassten Traffic.
- VpcFlowLogsTopTalkingSubnets — Die IDs der 50 Subnetze mit dem meisten erfassten Traffic.
- VpcFlowLogsTopTCPTraffic — Sämtlicher TCP-Traffic, der für eine Quell-IP-Adresse erfasst wurde.
- VpcFlowLogsTotalBytesTransferred — Die 50 Paare aus Quell- und Ziel-IP-Adressen mit den meisten erfassten Bytes.
- VpcFlowLogsTotalBytesTransferredPacketLevel — Die 50 Paare aus Quell- und Ziel-IP-Adressen auf Paketebene mit den meisten erfassten Bytes.
- VpcFlowLogsTrafficFrmSrcAddr — Der für eine bestimmte Quell-IP-Adresse erfasste Traffic.
- VpcFlowLogsTrafficToDstAddr — Der für eine bestimmte Ziel-IP-Adresse erfasste Traffic.
Führen wir eine Beispielabfrage aus, um einen Eindruck von den gelieferten Insights zu bekommen. Ich habe die Abfrage VpcFlowLogsTopTalkers verwendet, die die Top 50 IP-Adressen samt der von ihnen verbrauchten Datenmenge in Bytes ausgibt.

Und fertig. Jetzt steht Ihnen ein Abfragemechanismus zur Verfügung, mit dem Sie Probleme in Ihrem Netzwerk analysieren oder gezielt Insights gewinnen.
Happy Troubleshooting!!!
Referenz:
[1] https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-athena.html