Raccogli i log di flusso VPC AWS
Questo documento spiega come importare i log di flusso VPC di AWS in Google Security Operations utilizzando tre metodi diversi: Amazon S3 (formato di testo), Amazon CloudWatch Logs con Kinesis Data Firehose e formato CSV in Amazon S3. I log di flusso VPC di AWS sono una funzionalità che consente di acquisire informazioni sul traffico IP da e verso le interfacce di rete nel VPC. Questa integrazione ti consente di inviare questi log a Google SecOps per l'analisi e il monitoraggio.
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.
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 l'analisi corretta, 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 di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso con privilegi ad AWS.
Opzione 1: configura l'esportazione dei log di flusso VPC AWS utilizzando AWS S3 (formato di testo)
La sezione seguente descrive come configurare le autorizzazioni Amazon S3 e Identity and Access Management per attivare l'esportazione dei log di flusso VPC per l'analisi da parte di Google SecOps.
Configura il bucket AWS S3 e IAM per Google SecOps
- Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket.
- Salva il nome e la regione del bucket per riferimento futuro (ad esempio,
aws-vpc-flowlogs
). - Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per riferimento futuro.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Criteri per le autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente i criteri.
- Cerca il criterio AmazonS3FullAccess.
- Seleziona la policy.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Crea log di flusso VPC (destinazione: Amazon S3, formato di testo)
- Apri AWS Console > VPC > Your VPCs/Subnets/Network interfaces e seleziona l'ambito di cui vuoi registrare i log.
- Fai clic su Azioni > Crea log di flusso.
- Fornisci i seguenti dettagli di configurazione:
- Filtra: scegli Tutti (o Accetta / Rifiuta) in base alle tue norme.
- Intervallo di aggregazione massimo: seleziona 1 minuto (opzione consigliata) o 10 minuti.
- Destinazione: Invia a un bucket Amazon S3.
- ARN del bucket S3: inserisci il nome del bucket creato nella sezione precedente nel seguente formato:
arn:aws:s3:::<your-bucket>
. - Formato record di log: seleziona Formato predefinito AWS.
- Formato file di log: seleziona Testo (normale).
- (Facoltativo) Disattiva i prefissi compatibili con Hive e le partizioni orarie, a meno che non ti servano.
- Fai clic su Crea log di flusso.
Configura un feed in Google SecOps per importare i log di flusso VPC di AWS (testo S3)
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
AWS VPC Flow Logs - S3 (Text)
). - Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona AWS VPC Flow come tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- URI S3: inserisci l'indirizzo del bucket S3 (ad esempio,
s3://<your-bucket>/AWSLogs/<account-id>/vpcflowlogs/<region>/
). - Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- Durata massima del file: 180 giorni per impostazione predefinita.
- ID chiave di accesso: chiave di accesso utente con accesso al bucket S3.
- Chiave di accesso segreta: chiave segreta dell'utente con accesso al bucket S3.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- URI S3: inserisci l'indirizzo del bucket S3 (ad esempio,
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Opzione 2: configura l'esportazione dei log di flusso VPC di AWS utilizzando Amazon CloudWatch Logs e Kinesis Data Firehose
Dopo aver configurato i log di flusso in modo che vengano inviati a CloudWatch, questa opzione fornisce un ulteriore livello di esportazione dei dati trasmettendo in streaming i dati di log a una destinazione a tua scelta utilizzando Kinesis Data Firehose.
Crea log di flusso VPC (destinazione: Amazon CloudWatch Logs)
- Apri la console AWS > VPC > Le tue VPC/subnet/interfacce di rete.
- Fai clic su Azioni > Crea log di flusso.
- Fornisci i seguenti dettagli di configurazione:
- Filtro: scegli Tutti (o Accetta/Rifiuta) in base alle tue norme.
- Intervallo di aggregazione massimo: seleziona 1 minuto (opzione consigliata) o 10 minuti.
- Destinazione: seleziona Invia a CloudWatch Logs.
- Gruppo di log di destinazione: seleziona o crea un gruppo di log (ad esempio
/aws/vpc/flowlogs
). - Ruolo IAM: seleziona un ruolo che possa scrivere in CloudWatch Logs.
- Formato record di log: seleziona Predefinito AWS (versione 2) o Personalizzato (include campi aggiuntivi).
- Fai clic su Crea log di flusso.
Crea un feed in Google SecOps per ottenere l'URL endpoint e la chiave segreta
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
AWS VPC Flow Logs - CloudWatch via Firehose
). - Seleziona Amazon Data Firehose come Tipo di origine.
- Seleziona AWS VPC Flow come tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Delimitatore di divisione:
n
facoltativo. - Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset (ad esempio,
aws.vpc.flowlogs.cwl
). - Etichette di importazione: l'etichetta da applicare agli eventi di questo feed (ad esempio,
source=vpc_flow_firehose
).
- Delimitatore di divisione:
- Fai clic su Avanti.
- Rivedi la configurazione del feed e fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
- Copia e salva la chiave segreta, perché non potrai più visualizzarla.
- Vai alla scheda Dettagli.
- Copia l'URL dell'endpoint del feed dal campo Endpoint Information (Informazioni sull'endpoint).
- Fai clic su Fine.
Crea una chiave API per il feed Amazon Data Firehose
- Vai alla pagina Credenziali della console Google Cloud.
- Fai clic su Crea credenziali e poi seleziona Chiave API.
- Copia e salva la chiave in un luogo sicuro.
- Limita l'accesso alla chiave API all'API Google SecOps.
Configura le autorizzazioni IAM per CloudWatch Logs in Firehose
- Nella console AWS, vai a IAM > Policy > Crea policy > JSON.
Incolla il seguente JSON della policy, sostituendo
<region>
e<account-id>
con la tua regione AWS e il tuo ID account:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }
Assegna un nome alla policy
CWLtoFirehoseWrite
e fai clic su Crea policy.Vai a IAM > Ruoli > Crea ruolo.
Seleziona Policy di attendibilità personalizzata e incolla:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Allega la policy
CWLtoFirehoseWrite
al ruolo.Assegna al ruolo il nome
CWLtoFirehoseRole
e fai clic su Crea ruolo.
Configura Amazon Kinesis Data Firehose per Google SecOps
- Nella console AWS, vai a Kinesis > Data Firehose > Crea flusso di distribuzione.
- Fornisci i seguenti dettagli di configurazione:
- Origine: seleziona Inserimento diretto o altre origini.
- Destinazione: scegli Endpoint HTTP.
- Nome:
cwlogs-to-secops
- URL endpoint HTTP: inserisci l'URL endpoint HTTPS del feed di Google SecOps con la chiave API aggiunta:
<ENDPOINT_URL>?key=<API_KEY>
- Metodo HTTP: seleziona POST.
- Nella sezione Chiave di accesso:
- Inserisci la chiave segreta generata nel feed Google SecOps (che diventa l'intestazione
X-Amz-Firehose-Access-Key
). - Suggerimenti per il buffering: imposta Dimensione buffer = 1 MiB, Intervallo buffer = 60 secondi.
- Compressione: seleziona Disattivata.
- Backup S3: seleziona Disattivato.
- Lascia le impostazioni di riprova e registrazione come predefinite.
- Inserisci la chiave segreta generata nel feed Google SecOps (che diventa l'intestazione
- Fai clic su Crea stream di pubblicazione.
Iscrivi il gruppo di log CloudWatch al flusso Firehose
- Vai a CloudWatch > Logs > Log groups.
- Seleziona il gruppo di log di destinazione (ad esempio
/aws/vpc/flowlogs
). - Apri la scheda Filtri delle iscrizioni e fai clic su Crea.
- Scegli Crea filtro di sottoscrizione Amazon Kinesis Data Firehose.
- Fornisci i seguenti dettagli di configurazione:
- Destinazione: seleziona lo stream di distribuzione
cwlogs-to-secops
. - Concedi autorizzazione: scegli il ruolo
CWLtoFirehoseRole
. - Nome filtro: inserisci
all-events
. - Pattern di filtro: lascia vuoto per inviare tutti gli eventi.
- Destinazione: seleziona lo stream di distribuzione
- Fai clic su Avvia streaming.
Opzione 3: configura i log di flusso VPC di AWS in formato CSV utilizzando Amazon S3
(Facoltativo) Trasformare i log in formato CSV
- Assicurati che le righe CSV seguano un ordine delle colonne rigoroso e coerente che corrisponda ai campi selezionati nel formato personalizzato dei log di flusso VPC (ad esempio, il set di campi canonico v2 o il set v5/v7). Non includere una riga di intestazione nei file di produzione, a meno che l'opzione di analisi non ne preveda una.
- Scrivi i file CSV in un prefisso stabile, ad esempio
s3://<your-bucket>/vpcflowlogs-csv/<region>/year=<year>/month=<month>/day=<day>/
.
Configura un feed in Google SecOps per l'importazione dei log di flusso VPC AWS (CSV)
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
AWS VPC Flow Logs - S3 (CSV)
). - Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona AWS VPC Flow (CSV) come Tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- URI S3: inserisci l'indirizzo del bucket S3 (ad esempio,
s3://<your-bucket>/vpcflowlogs-csv/<region>/
). - Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- Durata massima del file: 180 giorni per impostazione predefinita.
- ID chiave di accesso: chiave di accesso utente con accesso al bucket S3.
- Chiave di accesso segreta: chiave segreta dell'utente con accesso al bucket S3.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- URI S3: inserisci l'indirizzo del bucket S3 (ad esempio,
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
accountId | read_only_udm.metadata.product_log_id | Valore estratto dal campo log non elaborato accountId . |
azione | read_only_udm.security_result.action_details | Valore estratto dal campo log non elaborato action . |
azione | read_only_udm.security_result.action | Mappato su ALLOW se action è ACCEPT, mappato su BLOCK se action è REJECT . |
az_id | read_only_udm.principal.cloud.availability_zone | Valore estratto dal campo log non elaborato az_id . |
byte | read_only_udm.network.received_bytes | Valore estratto dal campo log non elaborato bytes . |
dstaddr | read_only_udm.target.ip | Valore estratto dal campo log non elaborato dstaddr . |
dstport | read_only_udm.target.port | Valore estratto dal campo log non elaborato dstport . |
end_time | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato end_time . |
end_time | read_only_udm.metadata.ingested_timestamp | Valore estratto dal campo log non elaborato end_time . |
flow_direction | read_only_udm.network.direction | Mappato a IN ENTRATA se flow_direction è ingress , mappato a IN USCITA se flow_direction è egress . |
InstanceID | read_only_udm.principal.cloud.project.id | Valore estratto dal campo log non elaborato InstanceID . |
interfaceId | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato interfaceId . |
logStatus | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato logStatus . |
pacchetti | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato packets . |
pkt_dst_aws_service | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato pkt_dst_aws_service . |
pkt_dstaddr | read_only_udm.intermediary.ip | Valore estratto dal campo log non elaborato pkt_dstaddr . |
pkt_srcaddr | read_only_udm.intermediary.ip | Valore estratto dal campo log non elaborato pkt_srcaddr . |
pkt_src_aws_service | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato pkt_src_aws_service . |
protocollo | read_only_udm.network.ip_protocol | Mappato a TCP se protocol è 6, mappato a UDP se protocol è 17, altrimenti mappato a UNKNOWN_IP_PROTOCOL. |
Regione | read_only_udm.principal.location.country_or_region | Valore estratto dal campo log non elaborato Region . |
srcaddr | read_only_udm.principal.ip | Valore estratto dal campo log non elaborato srcaddr . |
srcport | read_only_udm.principal.port | Valore estratto dal campo log non elaborato srcport . |
start_time | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato start_time . |
start_time | read_only_udm.metadata.event_timestamp | Valore estratto dal campo log non elaborato start_time . |
SubnetID | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato SubnetID . |
tcp_flags | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato tcp_flags . |
traffic_path | read_only_udm.about.resource.attribute.labels.value | Valore estratto dal campo log non elaborato traffic_path . |
versione | read_only_udm.metadata.product_version | Valore estratto dal campo log non elaborato version . |
vpcID | read_only_udm.principal.cloud.vpc.id | Valore estratto dal campo log non elaborato vpcID . |
read_only_udm.metadata.vendor_name | Codificato in AMAZON . |
|
read_only_udm.metadata.product_name | Codificato in AWS VPC Flow . |
|
read_only_udm.metadata.log_type | Codificato in AWS_VPC_FLOW . |
|
read_only_udm.metadata.event_type | Mappato a NETWORK_CONNECTION se dstaddr non è vuoto, altrimenti mappato a GENERIC_EVENT . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.