Raccogli i log di flusso VPC di AWS
Questo documento descrive come raccogliere i log di flusso VPC di AWS utilizzando un forwarder Google Security Operations.
Per ulteriori informazioni, vedi Importazione dei dati in Google SecOps.
Un'etichetta di importazione identifica il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser
con l'etichetta di importazione AWS_VPC_FLOW
.
Formati dei log di flusso VPC AWS supportati
Google SecOps supporta l'importazione dei log di flusso VPC di AWS in due formati di testo principali:
Formato JSON:il tipo di log
AWS_VPC_FLOW
analizza i log in formato JSON. In questo formato, ogni voce di log include sia una chiave sia il valore corrispondente, rendendo i dati autodescrittivi.Formato CSV: Google SecOps fornisce anche un parser per i log di flusso VPC di AWS in formato CSV. Questo formato elenca le chiavi dei campi una sola volta nella riga di intestazione, mentre le righe successive contengono solo valori separati da virgole.
Per importare i log di flusso VPC di AWS in formato CSV, specifica il tipo di log come
AWS_VPC_FLOW_CSV
quando configuri il forwarder. Per le istruzioni di configurazione, vedi
Configurare il forwarder Google SecOps e syslog per l'importazione dei log di flusso VPC di AWS.
Poiché il formato CSV non include le chiavi dei campi in ogni voce di log, il parser AWS_VPC_FLOW_CSV
si basa su un ordine rigoroso e predefinito dei valori. Per una corretta analisi, i file CSV devono rispettare il seguente ordine dei campi:
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
Di seguito è riportato un esempio di riga di log CSV:
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,,-,-,-,-,-,-,-,-,-,-
Per i campi in cui non è disponibile alcun valore, deve essere passato un valore vuoto (ad esempio , ,
)
per mantenere l'ordine posizionale corretto all'interno della riga CSV.
Prima di iniziare
Assicurati che il bucket Amazon S3 sia stato creato. Per saperne di più, consulta Creare il primo bucket S3.
Assicurati che il gruppo di log Amazon CloudWatch sia stato creato. Per maggiori informazioni, vedi Utilizzo di gruppi di log e flussi di log.
Configura il flusso VPC AWS
Configura il flusso VPC di AWS in base al fatto che inoltri i log ad Amazon S3 o ad Amazon CloudWatch.
Per informazioni sull'inoltro dei log al bucket Amazon S3, consulta la sezione Configurare i log di flusso per inoltrarli ad Amazon S3 di questo documento.
Per informazioni sull'inoltro dei log ad Amazon CloudWatch, consulta la sezione Configura i log di flusso per Amazon CloudWatch di questo documento.
Configura i log di flusso per inoltrare i log ad Amazon S3
Dopo aver creato e configurato il bucket Amazon S3, puoi creare log di flusso per le interfacce di rete, le subnet e le reti VPC.
Crea un log di flusso per un'interfaccia di rete
- Accedi alla console Amazon EC2.
- Nel riquadro di navigazione, seleziona Interfacce di rete.
- Seleziona una o più interfacce di rete.
- Seleziona Azioni > Crea log di flusso.
- Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.
Crea un log di flusso per una subnet
- Accedi alla console Amazon VPC.
- Nel riquadro di navigazione, seleziona Subnet.
- Seleziona una o più subnet.
- Seleziona Azioni > Crea log di flusso.
- Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.
Crea un log di flusso per un VPC
- Accedi alla console Amazon VPC.
- Nel riquadro di navigazione, seleziona VPC.
- Seleziona uno o più VPC.
- Seleziona Azioni > Crea log di flusso.
- Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.
Configura le impostazioni dei log di flusso
Nella sezione Filtro, specifica il traffico IP da registrare:
Accetta: registra solo il traffico accettato.
Rifiuta: registra solo il traffico rifiutato.
Tutto: registra il traffico accettato e rifiutato.
Nella sezione Intervallo di aggregazione massimo, seleziona 1 minuto.
Nella sezione Destinazione, seleziona Invia a un bucket Amazon S3.
Nella sezione ARN bucket S3, specifica l'ARN di un bucket Amazon S3.
Nella sezione Formato record di log, specifica i seguenti formati per il record di log di flusso:
- Per utilizzare il formato predefinito dei record di log di flusso, seleziona Formato predefinito AWS.
- Per creare un formato personalizzato, seleziona Formato personalizzato.
Configura il flusso di log VPC con il formato di log AWS personalizzato per utilizzare le funzionalità di IP vero di MSS.
Nell'elenco Formato log, seleziona tutti gli attributi.
Nella sezione Anteprima formato, esamina il formato personalizzato.
Nella sezione Formato file di log, seleziona Testo (predefinito).
Nella sezione Prefisso S3 compatibile con Hive, lascia deselezionata la casella di controllo Attiva.
Nella sezione Partiziona i log per ora, seleziona Ogni ora (60 minuti).
Per aggiungere un tag al log di flusso, seleziona Aggiungi nuovo tag e specifica la chiave e il valore del tag.
Seleziona Crea log di flusso. Per maggiori informazioni, consulta Pubblicare i log di flusso su Amazon S3.
Configura i log di flusso in Amazon CloudWatch
Puoi configurare i log di flusso da VPC, subnet o interfacce di rete.
Nella sezione Filtro, specifica il tipo di traffico IP da registrare:
Accetta: registra solo il traffico accettato.
Rifiuta: registra solo il traffico rifiutato.
Tutto: registra il traffico accettato e rifiutato.
Nella sezione Intervallo di aggregazione massimo, seleziona 1 minuto.
Nella sezione Destinazione, seleziona Invia a CloudWatch Logs.
Nella sezione Gruppo di log di destinazione, fornisci il nome del gruppo di log di destinazione che hai creato.
Nell'elenco Ruolo IAM, seleziona il nome del ruolo. Il nome del ruolo selezionato dispone delle autorizzazioni per pubblicare i log in CloudWatch Logs.
Il ruolo IAM deve includere le seguenti autorizzazioni:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }
Nella sezione Formato record log, seleziona Formato personalizzato per il record log di flusso.
Per aggiungere un tag al log di flusso, seleziona Aggiungi nuovo tag e specifica la chiave e il valore del tag.
Seleziona Crea log di flusso. Per maggiori informazioni, consulta Pubblicare i log di flusso su Amazon S3.
Amazon S3 può essere configurato per inviare le notifiche di eventi ad Amazon SQS. Per saperne di più, consulta Configurazione di un bucket per le notifiche (argomento SNS o coda SQS).
Se utilizzi Amazon SQS (Amazon S3 utilizzando Amazon SQS) come metodo di raccolta dei log, sono necessarie le policy utente IAM per Amazon S3 e Amazon SQS. Per ulteriori informazioni, consulta Utilizzare i criteri IAM con AWS KMS.
In base al servizio e alla regione, identifica gli endpoint per la connettività facendo riferimento alla seguente documentazione di AWS:
Per informazioni su eventuali origini di logging, consulta Endpoint e quote di AWS Identity and Access Management.
Per informazioni sulle origini di logging di Amazon S3, consulta Endpoint e quote di Amazon Simple Storage Service.
Per informazioni sulle origini di logging di Amazon SQS, consulta Endpoint e quote di Amazon Simple Queue Service.
Per informazioni sulle origini di logging di Amazon CloudWatch, consulta Endpoint e quote dei log Amazon CloudWatch.
Configura Google SecOps Forwarder e Syslog per importare i log di flusso VPC di AWS
- Seleziona Impostazioni SIEM > Forwarder.
- Fai clic su Aggiungi nuovo inoltro.
- Inserisci un nome univoco per il nome del forwarder.
- Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
- Nel campo Nome del raccoglitore, digita un nome.
- Nel campo Tipo di log, seleziona AWS VPC Flow o AWS VPC Flow (CSV), a seconda del formato del log.
- Nel campo Tipo di raccoglitore, seleziona Syslog.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo di connessione che il raccoglitore utilizzerà per ascoltare i dati syslog.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui si trova il raccoglitore e gli indirizzi dei dati syslog.
- Porta: specifica la porta di destinazione in cui risiede il raccoglitore e rimane in ascolto dei dati syslog.
- Fai clic su Invia e poi su Conferma.
Per ulteriori informazioni sui forwarder Google SecOps, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di forwarder, consulta Configurazione del forwarder per tipo.
Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza di Google Security Operations.
Riferimento alla mappatura dei campi
Questo parser trasforma i log di flusso VPC AWS non elaborati, in formato JSON o CSV, in formato UDM strutturato. Estrae i campi pertinenti, li mappa in modo che corrispondano allo schema UDM e arricchisce i dati con un contesto aggiuntivo, come il tipo di risorsa, il provider cloud e le etichette, per supportare un'analisi più approfondita. La logica di mappatura è coerente in entrambi i formati: il parser CSV si basa su un ordine di campi predefinito per allineare i valori agli stessi campi UDM utilizzati nel formato JSON.
Tabella di mappatura UDM per il parser VPC AWS EC2
Campo log (crescente) | Mappatura UDM | Logic |
---|---|---|
CidrBlock | event.idm.entity.entity.resource.attribute.labels.cidr_block | Mappato direttamente dal campo "CidrBlock" nel log non elaborato. |
CidrBlock | event.idm.entity.entity.network.ip_subnet_range | Mappato direttamente dal campo "CidrBlock" nel log non elaborato. |
CidrBlockAssociation.AssociationID | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id | Mappato direttamente dal campo "AssociationID" all'interno dell'array "CidrBlockAssociation" nel log non elaborato. |
CidrBlockAssociation.CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state | Mappato direttamente dal campo "State" all'interno dell'oggetto "CidrBlockState" dell'array "CidrBlockAssociation" nel log non elaborato. |
CidrBlockAssociation.CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message | Mappato direttamente dal campo "StatusMessage" all'interno dell'oggetto "CidrBlockState" dell'array "CidrBlockAssociation" nel log non elaborato. |
DhcpOptionsID | event.idm.entity.entity.resource.attribute.labels.dhcp_options_id | Mappato direttamente dal campo "DhcpOptionsID" nel log non elaborato. |
ID | event.idm.entity.entity.resource.product_object_id | Mappato direttamente dal campo "ID" nel log non elaborato, che viene rinominato in "VpcID" nel parser. |
ID | event.idm.entity.metadata.product_entity_id | Mappato direttamente dal campo "ID" nel log non elaborato, che viene rinominato in "VpcID" nel parser. |
InstanceTenancy | event.idm.entity.entity.resource.attribute.labels.instance_tenancy | Mappato direttamente dal campo "InstanceTenancy" nel log non elaborato. |
IsDefault | event.idm.entity.entity.resource.attribute.labels.is_default | Mappato direttamente dal campo "IsDefault" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.AssociationID | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id | Mappato direttamente dal campo "AssociationID" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block | Mappato direttamente dal campo "Ipv6CidrBlock" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state | Mappato direttamente dal campo "State" all'interno dell'oggetto "Ipv6CidrBlockState" dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message | Mappato direttamente dal campo "StatusMessage" all'interno dell'oggetto "Ipv6CidrBlockState" dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.Ipv6Pool | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool | Mappato direttamente dal campo "Ipv6Pool" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
Ipv6CidrBlockAssociationSet.NetworkBorderGroup | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group | Mappato direttamente dal campo "NetworkBorderGroup" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato. |
OwnerID | event.idm.entity.entity.resource.attribute.labels.owner_id | Mappato direttamente dal campo "OwnerID" nel log non elaborato. |
Stato | event.idm.entity.entity.resource.attribute.labels.state | Mappato direttamente dal campo "Stato" nel log non elaborato. |
TagSet.Key | event.idm.entity.entity.resource.attribute.labels.key | Mappato direttamente dal campo "Key" all'interno dell'array "TagSet" nel log non elaborato. Viene creata una nuova etichetta per ogni tag nel "TagSet". |
TagSet.Value | event.idm.entity.entity.resource.attribute.labels.value | Mappato direttamente dal campo "Value" all'interno dell'array "TagSet" nel log non elaborato. In questo modo, viene compilato il valore per ogni etichetta corrispondente creata dal campo "Chiave". |
N/D | event.idm.entity.entity.resource.attribute.cloud.environment | Codificato in modo permanente su "AMAZON_WEB_SERVICES" nel codice del parser. |
N/D | event.idm.entity.entity.resource.resource_type | Codificato come "VPC_NETWORK" nel codice del parser. |
N/D | event.idm.entity.metadata.collected_timestamp | Completato con il timestamp dell'evento, derivato dal campo "collection_time" nel log non elaborato. |
N/D | event.idm.entity.metadata.entity_type | Hardcoded su "RESOURCE" nel codice del parser. |
N/D | event.idm.entity.metadata.product_name | Codificato come "Amazon VPC" nel codice del parser. |
N/D | event.idm.entity.metadata.vendor_name | Codificato come "AWS" nel codice del parser. |
N/D | events.timestamp | Completato con il timestamp dell'evento, derivato dal campo "collection_time" nel log non elaborato. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.