AWS VPC Flow Logs erfassen
In diesem Dokument wird beschrieben, wie Sie AWS VPC-Flusslogs mit einem Google Security Operations-Forwarder erfassen können.
Weitere Informationen finden Sie unter Datenaufnahme in Google SecOps.
Mit einem Erfassungslabel wird der Parser identifiziert, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Ingestion-Label AWS_VPC_FLOW
.
Unterstützte AWS VPC Flow Log-Formate
Google SecOps unterstützt die Aufnahme von AWS VPC Flow Logs in zwei primären Textformaten:
JSON-Format:Beim Logtyp
AWS_VPC_FLOW
werden Logs im JSON-Format geparst. In diesem Format enthält jeder Logeintrag sowohl einen Schlüssel als auch den entsprechenden Wert, sodass die Daten selbsterklärend sind.CSV-Format:Google SecOps bietet auch einen Parser für AWS VPC Flow Logs im CSV-Format. In diesem Format werden Feldschlüssel nur einmal in der Kopfzeile aufgeführt. Die nachfolgenden Zeilen enthalten nur durch Kommas getrennte Werte.
Wenn Sie AWS VPC-Flusslogs im CSV-Format aufnehmen möchten, geben Sie den Logtyp als AWS_VPC_FLOW_CSV
an, wenn Sie den Forwarder konfigurieren. Eine Einrichtungsanleitung finden Sie unter Google SecOps-Forwarder und Syslog zum Erfassen von AWS VPC-Flusslogs konfigurieren.
Da das CSV-Format keine Feldschlüssel in den einzelnen Logeinträgen enthält, ist für den AWS_VPC_FLOW_CSV
-Parser eine strenge, vordefinierte Reihenfolge der Werte erforderlich. Ihre CSV-Dateien müssen die folgende Feldreihenfolge für das korrekte Parsen einhalten:
Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id
Hier ein Beispiel für eine CSV-Logzeile:
7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-
Für Felder, für die kein Wert verfügbar ist, sollte ein leerer Wert (z. B. , ,
) übergeben werden, um die richtige Position in der CSV-Zeile beizubehalten.
Hinweise
Prüfen Sie, ob der Amazon S3-Bucket erstellt wurde. Weitere Informationen finden Sie unter Ersten S3-Bucket erstellen.
Prüfen Sie, ob die Amazon CloudWatch-Loggruppe erstellt wurde. Weitere Informationen finden Sie unter Mit Loggruppen und Logstreams arbeiten.
AWS VPC Flow konfigurieren
Konfigurieren Sie AWS VPC Flow je nachdem, ob Sie die Logs an Amazon S3 oder an Amazon CloudWatch weiterleiten.
Informationen zum Weiterleiten von Logs an den Amazon S3-Bucket finden Sie im Abschnitt Flow-Logs für die Weiterleitung von Logs an Amazon S3 konfigurieren in diesem Dokument.
Informationen zum Weiterleiten von Logs an Amazon CloudWatch finden Sie im Abschnitt Flusslogs für Amazon CloudWatch konfigurieren in diesem Dokument.
Flusslogs konfigurieren, um Logs an Amazon S3 weiterzuleiten
Nachdem Sie den Amazon S3-Bucket erstellt und konfiguriert haben, können Sie Flusslogs für Ihre Netzwerkschnittstellen, Subnetze und VPC-Netzwerke erstellen.
Flow-Log für eine Netzwerkschnittstelle erstellen
- Melden Sie sich in der Amazon EC2-Konsole an.
- Wählen Sie im Navigationsbereich Netzwerkschnittstellen aus.
- Wählen Sie eine oder mehrere Netzwerkschnittstellen aus.
- Wählen Sie Aktionen > Flow-Log erstellen aus.
- Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.
Flusslog für ein Subnetz erstellen
- Melden Sie sich in der Amazon VPC-Konsole an.
- Wählen Sie im Navigationsbereich Subnetze aus.
- Wählen Sie ein oder mehrere Subnetze aus.
- Wählen Sie Aktionen > Flow-Log erstellen aus.
- Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.
Flusslog für eine VPC erstellen
- Melden Sie sich in der Amazon VPC-Konsole an.
- Wählen Sie im Navigationsbereich VPCs aus.
- Wählen Sie eine oder mehrere VPCs aus.
- Wählen Sie Aktionen > Flow-Log erstellen aus.
- Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.
Flusslogeinstellungen konfigurieren
Geben Sie im Bereich Filter den IP-Traffic an, der protokolliert werden soll:
Akzeptieren: Es wird nur akzeptierter Traffic protokolliert.
Ablehnen: Es wird nur abgelehnter Traffic protokolliert.
Alle: Akzeptierter und abgelehnter Traffic wird protokolliert.
Wählen Sie im Abschnitt Maximales Aggregationsintervall die Option 1 Minute aus.
Wählen Sie im Abschnitt Ziel die Option An einen Amazon S3-Bucket senden aus.
Geben Sie im Abschnitt S3-Bucket-ARN den ARN eines Amazon S3-Buckets an.
Geben Sie im Abschnitt Format des Protokolldatensatzes die folgenden Formate für den Flow-Protokolldatensatz an:
- Wenn Sie das Standardformat für Flusslogdatensätze verwenden möchten, wählen Sie AWS-Standardformat aus.
- Wenn Sie ein benutzerdefiniertes Format erstellen möchten, wählen Sie Benutzerdefiniertes Format aus.
Konfigurieren Sie den VPC-Logfluss mit dem benutzerdefinierten AWS-Logformat, um die Funktionen für die tatsächliche IP-Adresse von MSS zu verwenden.
Wählen Sie in der Liste Logformat alle Attribute aus.
Sehen Sie sich im Bereich Formatvorschau das benutzerdefinierte Format an.
Wählen Sie im Bereich Logdateiformat die Option Text (Standard) aus.
Lassen Sie im Abschnitt Hive-kompatibles S3-Präfix das Kästchen Aktivieren deaktiviert.
Wählen Sie im Abschnitt Logs nach Zeit partitionieren die Option Alle 1 Stunde (60 Minuten) aus.
Wenn Sie dem Flow-Log ein Tag hinzufügen möchten, wählen Sie Neues Tag hinzufügen aus und geben Sie den Tag-Schlüssel und -Wert an.
Wählen Sie Ablaufprotokoll erstellen aus. Weitere Informationen finden Sie unter Flusslogs in Amazon S3 veröffentlichen.
Flusslogs für Amazon CloudWatch konfigurieren
Sie können Flusslogs entweder über VPCs, Subnetze oder Netzwerkschnittstellen konfigurieren.
Geben Sie im Bereich Filter den Typ des zu protokollierenden IP-Traffics an:
Akzeptieren: Es wird nur akzeptierter Traffic protokolliert.
Ablehnen: Es wird nur abgelehnter Traffic protokolliert.
Alle: Akzeptierter und abgelehnter Traffic wird protokolliert.
Wählen Sie im Abschnitt Maximales Aggregationsintervall die Option 1 Minute aus.
Wählen Sie im Abschnitt Ziel die Option An CloudWatch Logs senden aus.
Geben Sie im Abschnitt Ziel-Loggruppe den Namen der Ziel-Loggruppe an, die Sie erstellt haben.
Wählen Sie in der Liste IAM-Rolle den Rollennamen aus. Die ausgewählte Rolle hat Berechtigungen zum Veröffentlichen von Logs in CloudWatch Logs.
Die IAM-Rolle muss die folgenden Berechtigungen enthalten:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }
Wählen Sie im Abschnitt Logeintragformat die Option Benutzerdefiniertes Format für den Flusslog-Eintrag aus.
Wenn Sie dem Flow-Log ein Tag hinzufügen möchten, wählen Sie Neues Tag hinzufügen aus und geben Sie den Tag-Schlüssel und -Wert an.
Wählen Sie Ablaufprotokoll erstellen aus. Weitere Informationen finden Sie unter Flusslogs in Amazon S3 veröffentlichen.
Amazon S3 kann so konfiguriert werden, dass die Ereignisbenachrichtigungen an Amazon SQS gesendet werden. Weitere Informationen finden Sie unter Bucket für Benachrichtigungen konfigurieren (SNS-Thema oder SQS-Warteschlange).
IAM-Nutzerrichtlinien sind für Amazon S3 und Amazon SQS erforderlich, wenn Amazon SQS (Amazon S3 mit Amazon SQS) als Methode zum Erfassen von Logs verwendet wird. Weitere Informationen finden Sie unter IAM-Richtlinien mit AWS KMS verwenden.
Ermitteln Sie anhand des Dienstes und der Region die Endpunkte für die Verbindung. Verwenden Sie dazu die folgende AWS-Dokumentation:
Informationen zu Protokollierungsquellen finden Sie unter AWS Identity and Access Management-Endpunkte und ‑Kontingente.
Informationen zu Amazon S3-Logging-Quellen finden Sie unter Amazon Simple Storage Service-Endpunkte und -Kontingente.
Informationen zu Amazon SQS-Protokollierungsquellen finden Sie unter Amazon Simple Queue Service-Endpunkte und -Kontingente.
Informationen zu Amazon CloudWatch-Logging-Quellen finden Sie unter Amazon CloudWatch Logs-Endpunkte und -Kontingente.
Google SecOps-Forwarder und Syslog zum Erfassen von AWS VPC-Flusslogs konfigurieren
- Wählen Sie SIEM-Einstellungen > Weiterleitungen aus.
- Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
- Geben Sie einen eindeutigen Namen für den Forwarder-Namen ein.
- Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Collectors einen Namen ein.
- Wählen Sie im Feld Log type (Logtyp) je nach Logformat AWS VPC Flow oder AWS VPC Flow (CSV) aus.
- Wählen Sie im Feld Collector-Typ die Option Syslog aus.
- Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
- Protokoll: Geben Sie das Verbindungsprotokoll an, das der Collector verwenden soll, um auf Syslog-Daten zu warten.
- Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet und an den die Syslog-Daten gesendet werden.
- Port: Geben Sie den Zielport an, auf dem sich der Collector befindet und an dem er auf Syslog-Daten wartet.
- Klicken Sie auf Senden und dann auf Bestätigen.
Weitere Informationen zu Google SecOps-Forwardern finden Sie in der Dokumentation zu Google Security Operations-Forwardern. Informationen zu den Anforderungen für die einzelnen Forwarder-Typen finden Sie unter Forwarder-Konfiguration nach Typ.
Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.
Referenz zur Feldzuordnung
Dieser Parser wandelt Roh-VPC-Flow-Logs von AWS im JSON- oder CSV-Format in das strukturierte UDM-Format um. Es werden relevante Felder extrahiert, dem UDM-Schema zugeordnet und mit zusätzlichem Kontext wie Ressourcentyp, Cloud-Anbieter und Labels angereichert, um eine detailliertere Analyse zu ermöglichen. Die Zuordnungslogik ist für beide Formate konsistent: Der CSV-Parser stützt sich auf eine vordefinierte Feldreihenfolge, um Werte mit denselben UDM-Feldern abzugleichen, die im JSON-Format verwendet werden.
UDM-Zuordnungstabelle für den AWS EC2 VPC-Parser
Logfeld (aufsteigend) | UDM-Zuordnung | Logik |
---|---|---|
CidrBlock | event.idm.entity.entity.resource.attribute.labels.cidr_block | Direkt aus dem Feld „CidrBlock“ im Rohlog zugeordnet. |
CidrBlock | event.idm.entity.entity.network.ip_subnet_range | Direkt aus dem Feld „CidrBlock“ im Rohlog zugeordnet. |
CidrBlockAssociation.AssociationID | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id | Direkt aus dem Feld „AssociationID“ im Array „CidrBlockAssociation“ im Rohlog zugeordnet. |
CidrBlockAssociation.CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state | Direkt aus dem Feld „State“ im Objekt „CidrBlockState“ des Arrays „CidrBlockAssociation“ im Rohlog abgeleitet. |
CidrBlockAssociation.CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message | Direkt aus dem Feld „StatusMessage“ im Objekt „CidrBlockState“ des Arrays „CidrBlockAssociation“ im Rohlog zugeordnet. |
DhcpOptionsID | event.idm.entity.entity.resource.attribute.labels.dhcp_options_id | Direkt aus dem Feld „DhcpOptionsID“ im Rohlog zugeordnet. |
ID | event.idm.entity.entity.resource.product_object_id | Direkt aus dem Feld „ID“ im Rohlog zugeordnet, das im Parser in „VpcID“ umbenannt wird. |
ID | event.idm.entity.metadata.product_entity_id | Direkt aus dem Feld „ID“ im Rohlog zugeordnet, das im Parser in „VpcID“ umbenannt wird. |
InstanceTenancy | event.idm.entity.entity.resource.attribute.labels.instance_tenancy | Direkt aus dem Feld „InstanceTenancy“ im Rohlog zugeordnet. |
IsDefault | event.idm.entity.entity.resource.attribute.labels.is_default | Direkt aus dem Feld „IsDefault“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.AssociationID | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id | Direkt aus dem Feld „AssociationID“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block | Direkt aus dem Feld „Ipv6CidrBlock“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state | Direkt aus dem Feld „State“ im Objekt „Ipv6CidrBlockState“ des Arrays „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message | Direkt aus dem Feld „StatusMessage“ im Objekt „Ipv6CidrBlockState“ des Arrays „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.Ipv6Pool | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool | Direkt aus dem Feld „Ipv6Pool“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
Ipv6CidrBlockAssociationSet.NetworkBorderGroup | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group | Direkt aus dem Feld „NetworkBorderGroup“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet. |
OwnerID | event.idm.entity.entity.resource.attribute.labels.owner_id | Direkt aus dem Feld „OwnerID“ im Rohlog zugeordnet. |
Bundesland | event.idm.entity.entity.resource.attribute.labels.state | Direkt aus dem Feld „State“ (Status) im Rohlog zugeordnet. |
TagSet.Key | event.idm.entity.entity.resource.attribute.labels.key | Direkt aus dem Feld „Key“ im Array „TagSet“ im Rohlog zugeordnet. Dadurch wird für jedes Tag im „TagSet“ ein neues Label erstellt. |
TagSet.Value | event.idm.entity.entity.resource.attribute.labels.value | Direkt aus dem Feld „Value“ im Array „TagSet“ im Rohlog zugeordnet. Damit wird der Wert für jedes entsprechende Label, das aus dem Feld „Schlüssel“ erstellt wurde, eingefügt. |
– | event.idm.entity.entity.resource.attribute.cloud.environment | Im Parsercode fest codiert als „AMAZON_WEB_SERVICES“. |
– | event.idm.entity.entity.resource.resource_type | Im Parsercode ist „VPC_NETWORK“ fest codiert. |
– | event.idm.entity.metadata.collected_timestamp | Wird mit dem Ereigniszeitstempel gefüllt, der aus dem Feld „collection_time“ im Rohlog abgeleitet wird. |
– | event.idm.entity.metadata.entity_type | Im Parsercode hartcodiert auf „RESOURCE“. |
– | event.idm.entity.metadata.product_name | Im Parsercode ist „Amazon VPC“ hartcodiert. |
– | event.idm.entity.metadata.vendor_name | Im Parsercode ist „AWS“ hartcodiert. |
– | events.timestamp | Wird mit dem Ereigniszeitstempel gefüllt, der aus dem Feld „collection_time“ im Rohlog abgeleitet wird. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten