Raccogliere i log AWS CloudWatch
Questo documento spiega come importare i log di AWS CloudWatch in Google Security Operations utilizzando Amazon S3 o Amazon Kinesis Data Firehose. AWS CloudWatch è un servizio di monitoraggio e osservabilità che raccoglie dati operativi sotto forma di log, metriche ed eventi. Questa integrazione ti consente di inviare questi log a Google SecOps per l'analisi e il monitoraggio.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Accesso privilegiato ad AWS
Configura l'esportazione dei log CloudWatch utilizzando AWS S3
Questo processo di esportazione deve essere eseguito regolarmente per importare i log CloudWatch più recenti in S3.
Crea un bucket Amazon S3
Ti consigliamo di utilizzare un bucket creato appositamente per i log CloudWatch.
- Apri la console Amazon S3.
- Se necessario, puoi modificare la regione.
- Nella barra di navigazione, seleziona la regione in cui si trovano i log CloudWatch.
- Fai clic su Crea bucket.
- Nome bucket: inserisci un nome significativo per il bucket.
- Regione: seleziona la regione in cui si trovano i dati di CloudWatch Logs.
- Fai clic su Crea.
Crea un utente IAM con accesso completo ad Amazon S3 e CloudWatch Logs
- Apri la console IAM.
- Fai clic su Utenti > Crea utente.
- Inserisci un nome nel campo Nome utente (ad esempio,
CWExport
). - Seleziona sia Accesso programmatico sia Accesso alla Console di gestione AWS.
- Seleziona Password generata automaticamente o Password personalizzata.
- Fai clic su Avanti: autorizzazioni.
- Scegli Collega direttamente i criteri esistenti.
- Cerca e seleziona i criteri AmazonS3FullAccess e CloudWatchLogsFullAccess per l'utente.
- Fai clic su Avanti: tag.
- Fai clic su Successivo: esamina.
- Fai clic su Crea utente.
Configura le autorizzazioni per il bucket Amazon S3
- Nella console Amazon S3, scegli il bucket che hai creato in precedenza.
- Fai clic su Autorizzazioni > Criterio del bucket.
Nell'editor delle policy del bucket, aggiungi la seguente policy.
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::cw-exported-logs", "Principal": { "Service": "logs.us-east-1.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-east-1.amazonaws.com" } } ] }
Modifica e aggiorna le seguenti variabili
json
:- Modifica
cw-exported-logs
con il nome del tuo bucket S3. - Modifica
random-string
in una stringa di caratteri generata in modo casuale. - Assicurati di specificare l'endpoint di regione corretto per Principal.
- Modifica
Fai clic su Salva.
Configura l'esportazione di CloudWatch
- Accedi come utente IAM che hai creato in precedenza.
- Apri la console CloudWatch.
- Nel menu di navigazione, seleziona Gruppi di log.
- Seleziona il nome di un gruppo di log esistente o creane uno nuovo.
- Scegli Azioni > Esporta dati in Amazon S3.
- Nella schermata Esporta dati in Amazon S3, individua Definisci esportazione dati.
Imposta l'intervallo di tempo per i dati da esportare utilizzando Da e A.
Scegli bucket S3: seleziona l'account associato al bucket Amazon S3.
Nome bucket S3: seleziona un bucket Amazon S3.
Prefisso bucket S3: inserisci la stringa generata in modo casuale che hai specificato nella policy del bucket.
Scegli Esporta per esportare i dati dei log in Amazon S3.
Per visualizzare lo stato dei dati di log che hai esportato in Amazon S3, seleziona Azioni > Visualizza tutte le esportazioni in Amazon S3.
Configura un feed in Google SecOps per importare i log AWS CloudWatch
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
AWS CloudWatch Logs
). - Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona AWS CloudWatch come tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI S3: l'URI del bucket
s3://your-log-bucket-name/
- Sostituisci
your-log-bucket-name
con il nome effettivo del bucket.
- Sostituisci
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 da applicare agli eventi di questo feed.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configura l'esportazione dei log CloudWatch utilizzando AWS Data Firehose
Questo processo di esportazione non deve essere eseguito regolarmente dopo la configurazione iniziale.
Configura un feed in Google SecOps per importare i log AWS CloudWatch
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
AWS CloudWatch Logs
). - Seleziona Amazon Data Firehose come Tipo di origine.
- Seleziona AWS CloudWatch 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.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- 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ù visualizzare questo valore.
- 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 console Google Cloud, pagina Credenziali.
- Fai clic su Crea credenziali e poi seleziona Chiave API.
- Limita l'accesso alla chiave API all'API Google SecOps.
Specifica l'URL dell'endpoint
Per specificare l'endpoint HTTPS e la chiave di accesso in Amazon Data Firehose:
Aggiungi la chiave API all'URL dell'endpoint del feed e specifica questo URL come URL dell'endpoint HTTP nel seguente formato:
ENDPOINT_URL?key=API_KEY
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint del feed.API_KEY
: la chiave API per l'autenticazione a Google SecOps.
Per la chiave di accesso, specifica la chiave segreta che hai ottenuto quando hai creato il feed Amazon Data Firehose.
Configura Amazon Kinesis Data Firehose per Google SecOps {:#configure-kinesis-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.
- URL dell'endpoint HTTP: inserisci l'URL dell'endpoint HTTPS del feed di Google SecOps con la chiave API.
- Metodo HTTP: seleziona POST.
- Nella sezione Chiave di accesso, inserisci i seguenti dettagli:
- Intestazione della chiave segreta:
<HEADER_NAME_FOR_SECRET>
con valore<YOUR_SECRET_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.
- Intestazione della chiave segreta:
- Fai clic su Crea stream di pubblicazione.
Configura le autorizzazioni IAM e iscriviti al gruppo di log
- 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.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- Assegna un nome alla policy
Allega la policy
CWLtoFirehoseWrite
al ruolo.Assegna al ruolo il nome
CWLtoFirehoseRole
e fai clic su Crea ruolo.Vai a CloudWatch > Logs > Log groups.
Seleziona il gruppo di log di destinazione.
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
. - Lascia vuoto Pattern filtro per inviare tutti gli eventi.
- Destinazione: seleziona lo stream di distribuzione
Fai clic su Avvia streaming.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
account |
principal.user.userid |
Il valore di account del log non elaborato viene mappato al campo principal.user.userid . |
account_id |
principal.user.userid |
Il valore di account_id del log non elaborato viene mappato al campo principal.user.userid . |
AlertId |
metadata.product_log_id |
Il valore di AlertId del log non elaborato viene mappato al campo metadata.product_log_id . |
arrivalTimestamp |
metadata.event_timestamp |
Il valore di arrivalTimestamp del log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
attemptsMade |
additional.fields |
Il valore di attemptsMade del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "Tentativi effettuati". |
awsAccountId |
principal.asset_id |
Il valore di awsAccountId del log non elaborato viene preceduto da "ID account AWS: " e mappato al campo principal.asset_id . |
billed_duration |
additional.fields |
Il valore di billed_duration del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "billed_duration". |
BytesIn |
network.received_bytes |
Il valore di BytesIn del log non elaborato viene convertito in un numero intero senza segno e mappato al campo network.received_bytes . |
cipher |
network.tls.cipher |
Il valore di cipher del log non elaborato viene mappato al campo network.tls.cipher . |
Ciphers |
network.tls.client.supported_ciphers |
Il valore di Ciphers dal log non elaborato viene suddiviso in base alle virgole e ogni valore viene aggiunto all'array network.tls.client.supported_ciphers . |
cloudwatchLog |
security_result.description |
Il valore di cloudwatchLog del log non elaborato viene mappato al campo security_result.description . |
CloudAccountId |
metadata.product_deployment_id |
Il valore di CloudAccountId del log non elaborato viene mappato al campo metadata.product_deployment_id . |
CloudType |
target.resource.attribute.cloud.environment |
Il valore di CloudType del log non elaborato determina il valore di target.resource.attribute.cloud.environment . Se CloudType è "gcp", il valore è "GOOGLE_CLOUD_PLATFORM". Se CloudType è "aws", il valore è "AMAZON_WEB_SERVICES". Se CloudType è "azure", il valore è "MICROSOFT_AZURE". |
Context.Execution.Id |
target.resource.attribute.labels |
Il valore di Context.Execution.Id del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID contesto". |
Context.Execution.Name |
target.resource.attribute.labels |
Il valore di Context.Execution.Name del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Nome contesto". |
Context.Execution.RoleArn |
target.resource.product_object_id |
Il valore di Context.Execution.RoleArn del log non elaborato viene mappato al campo target.resource.product_object_id . |
descr |
metadata.description |
Il valore di descr del log non elaborato, dopo la rimozione degli spazi bianchi aggiuntivi, viene mappato al campo metadata.description , a meno che non sia "-". Se descr è vuoto, viene utilizzato il valore di log . |
destination.name |
target.location.country_or_region |
Il valore di destination.name del log non elaborato viene mappato al campo target.location.country_or_region . |
destination.properties.prefix |
target.resource.attribute.labels |
Il valore di destination.properties.prefix del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Prefisso proprietà di destinazione". |
detail.additionalEventData.configRuleArn |
security_result.rule_id |
Il valore di detail.additionalEventData.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.additionalEventData.configRuleName |
security_result.rule_name |
Il valore di detail.additionalEventData.configRuleName del log non elaborato viene mappato al campo security_result.rule_name . |
detail.additionalEventData.managedRuleIdentifier |
additional.fields |
Il valore di detail.additionalEventData.managedRuleIdentifier del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "managedRuleIdentifier". |
detail.additionalEventData.notificationJobType |
additional.fields |
Il valore di detail.additionalEventData.notificationJobType del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "notificationJobType". |
detail.awsAccountId |
principal.asset_id |
Il valore di detail.awsAccountId del log non elaborato viene preceduto da "ID account AWS: " e mappato al campo principal.asset_id . |
detail.awsRegion |
principal.location.name |
Il valore di detail.awsRegion del log non elaborato viene mappato al campo principal.location.name . |
detail.configRuleArn |
security_result.rule_id |
Il valore di detail.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.configRuleName |
security_result.rule_name |
Il valore di detail.configRuleName del log non elaborato viene mappato al campo security_result.rule_name . |
detail.configurationItem.awsAccountId |
principal.user.userid |
Il valore di detail.configurationItem.awsAccountId del log non elaborato viene mappato al campo principal.user.userid . |
detail.configurationItem.awsRegion |
target.location.country_or_region |
Il valore di detail.configurationItem.awsRegion del log non elaborato viene mappato al campo target.location.country_or_region . |
detail.configurationItem.configuration.complianceType |
security_result.summary |
Il valore di detail.configurationItem.configuration.complianceType del log non elaborato viene mappato al campo security_result.summary . |
detail.configurationItem.configuration.targetResourceId |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configuration.targetResourceId del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configuration targetResourceId". |
detail.configurationItem.configuration.targetResourceType |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configuration.targetResourceType del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configuration targetResourceType". |
detail.configurationItem.configurationItemCaptureTime |
_target.asset.attribute.creation_time |
Il valore di detail.configurationItem.configurationItemCaptureTime del log non elaborato viene convertito in un timestamp e mappato al campo _target.asset.attribute.creation_time . |
detail.configurationItem.configurationItemStatus |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configurationItemStatus del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configurationItemStatus". |
detail.configurationItem.configurationStateId |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configurationStateId del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configurationStateId". |
detail.configurationItem.resourceId |
target.resource.id |
Il valore di detail.configurationItem.resourceId del log non elaborato viene mappato al campo target.resource.id . |
detail.configurationItem.resourceType |
target.resource.resource_subtype |
Il valore di detail.configurationItem.resourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn |
security_result.rule_id |
Il valore di detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.eventCategory |
security_result.category_details |
Il valore di detail.eventCategory del log non elaborato viene mappato al campo security_result.category_details . |
detail.eventID |
metadata.product_log_id |
Il valore di detail.eventID del log non elaborato viene mappato al campo metadata.product_log_id . |
detail.eventName |
additional.fields |
Il valore di detail.eventName del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Nome evento". |
detail.eventSource |
target.application |
Il valore di detail.eventSource del log non elaborato viene mappato al campo target.application . |
detail.eventType |
additional.fields |
Il valore di detail.eventType del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Tipo di evento". |
detail.eventVersion |
metadata.product_version |
Il valore di detail.eventVersion del log non elaborato viene mappato al campo metadata.product_version . |
detail.managementEvent |
additional.fields |
Il valore di detail.managementEvent del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "detail managementEvent". |
detail.messageType |
target.resource.attribute.labels |
Il valore di detail.messageType del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Tipo di messaggio". |
detail.newEvaluationResult.complianceType |
security_result.summary |
Il valore di detail.newEvaluationResult.complianceType del log non elaborato viene mappato al campo security_result.summary . |
detail.newEvaluationResult.configRuleInvokedTime |
additional.fields |
Il valore di detail.newEvaluationResult.configRuleInvokedTime del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_configRuleInvokedTime". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_configRuleName". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resourceId". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resourceType". |
detail.newEvaluationResult.resultRecordedTime |
additional.fields |
Il valore di detail.newEvaluationResult.resultRecordedTime del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resultRecordedTime". |
detail.oldEvaluationResult.configRuleInvokedTime |
additional.fields |
Il valore di detail.oldEvaluationResult.configRuleInvokedTime del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_configRuleInvokedTime". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_configRuleName". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resourceId". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resourceType". |
detail.oldEvaluationResult.resultRecordedTime |
additional.fields |
Il valore di detail.oldEvaluationResult.resultRecordedTime del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resultRecordedTime". |
detail.readOnly |
additional.fields |
Il valore di detail.readOnly del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "detail readOnly". |
detail.recipientAccountId |
target.resource.attribute.labels |
Il valore di detail.recipientAccountId del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID account destinatario". |
detail.recordVersion |
metadata.product_version |
Il valore di detail.recordVersion del log non elaborato viene mappato al campo metadata.product_version . |
detail.requestID |
target.resource.attribute.labels |
Il valore di detail.requestID del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID richiesta dettagliata". |
detail.resourceType |
target.resource.resource_subtype |
Il valore di detail.resourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
detail.s3Bucket |
about.resource.name |
Il valore di detail.s3Bucket del log non elaborato viene mappato al campo about.resource.name . |
detail.s3ObjectKey |
target.resource.attribute.labels |
Il valore di detail.s3ObjectKey del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "s3ObjectKey". |
detail.userAgent |
network.http.user_agent |
Il valore di detail.userAgent del log non elaborato viene mappato al campo network.http.user_agent . |
detail.userIdentity.accessKeyId |
target.user.userid |
Il valore di detail.userIdentity.accessKeyId del log non elaborato viene mappato al campo target.user.userid . |
detail.userIdentity.accountId |
metadata.product_deployment_id |
Il valore di detail.userIdentity.accountId del log non elaborato viene mappato al campo metadata.product_deployment_id . |
detail.userIdentity.arn |
target.user.userid |
Il valore di detail.userIdentity.arn del log non elaborato viene mappato al campo target.user.userid . |
detail.userIdentity.principalId |
principal.user.product_object_id |
Il valore di detail.userIdentity.principalId del log non elaborato viene mappato al campo principal.user.product_object_id . |
detail.userIdentity.sessionContext.attributes.mfaAuthenticated |
principal.user.attribute.labels |
Il valore di detail.userIdentity.sessionContext.attributes.mfaAuthenticated del log non elaborato viene aggiunto come coppia chiave-valore a principal.user.attribute.labels con la chiave "mfaAuthenticated". |
detail.userIdentity.sessionContext.sessionIssuer.userName |
target.user.user_display_name |
Il valore di detail.userIdentity.sessionContext.sessionIssuer.userName del log non elaborato viene mappato al campo target.user.user_display_name . |
detail.userIdentity.type |
principal.resource.type |
Il valore di detail.userIdentity.type del log non elaborato viene mappato al campo principal.resource.type . |
detail-type |
metadata.product_event_type |
Il valore di detail-type del log non elaborato viene mappato al campo metadata.product_event_type . |
device |
principal.asset.product_object_id |
Il valore di device del log non elaborato viene mappato al campo principal.asset.product_object_id . |
digestPublicKeyFingerprint |
target.file.sha1 |
Il valore di digestPublicKeyFingerprint del log non elaborato viene mappato al campo target.file.sha1 . |
digestS3Bucket |
principal.resource.name |
Il valore di digestS3Bucket del log non elaborato viene mappato al campo principal.resource.name . |
digestS3Object |
principal.asset.asset_id |
Il valore di digestS3Object del log non elaborato viene preceduto da "S3 Object: " e mappato al campo principal.asset.asset_id . |
digestSignatureAlgorithm |
network.tls.cipher |
Il valore di digestSignatureAlgorithm del log non elaborato viene mappato al campo network.tls.cipher . |
digestStartTime |
metadata.event_timestamp |
Il valore di digestStartTime del log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
dimensions.VolumeId |
additional.fields |
Il valore di dimensions.VolumeId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "VolumeId". |
duration |
additional.fields |
Il valore di duration del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "duration". |
errorCode |
security_result.rule_name |
Il valore di errorCode del log non elaborato viene mappato al campo security_result.rule_name . |
errorMessage |
security_result.summary |
Il valore di errorMessage del log non elaborato viene mappato al campo security_result.summary . |
executionId |
principal.process.pid |
Il valore di executionId del log non elaborato viene mappato al campo principal.process.pid . |
host |
principal.hostname , principal.ip |
Il valore di host del log non elaborato, con i trattini sostituiti dai punti, viene analizzato come indirizzo IP e mappato al campo principal.ip se l'operazione va a buon fine. In caso contrario, viene mappato al campo principal.hostname . |
http_verb |
network.http.method |
Il valore di http_verb del log non elaborato viene convertito in maiuscolo e mappato al campo network.http.method . |
kubernetes.container_hash |
additional.fields |
Il valore di kubernetes.container_hash del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_hash". |
kubernetes.container_image |
additional.fields |
Il valore di kubernetes.container_image del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_image". |
kubernetes.container_name |
additional.fields |
Il valore di kubernetes.container_name del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_name". |
kubernetes.docker_id |
principal.asset_id |
Il valore di kubernetes.docker_id del log non elaborato viene preceduto da "id: " e mappato al campo principal.asset_id . |
kubernetes.host |
principal.hostname , principal.ip |
Il valore di kubernetes.host del log non elaborato, con i trattini sostituiti dai punti, viene analizzato come indirizzo IP e mappato al campo principal.ip se l'operazione va a buon fine. In caso contrario, viene mappato al campo principal.hostname . |
kubernetes.namespace |
principal.namespace |
Il valore di kubernetes.namespace del log non elaborato viene mappato al campo principal.namespace . |
kubernetes.namespace_name |
principal.namespace |
Il valore di kubernetes.namespace_name del log non elaborato viene mappato al campo principal.namespace . |
kubernetes.pod_id |
principal.asset.asset_id |
Il valore di kubernetes.pod_id del log non elaborato viene preceduto da "pod_id: " e mappato al campo principal.asset.asset_id . |
kubernetes.pod_name |
additional.fields |
Il valore di kubernetes.pod_name del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "nome pod". |
lambdaArn |
principal.hostname |
Il valore di lambdaArn del log non elaborato viene mappato al campo principal.hostname . |
level |
security_result.severity |
Il valore di level del log non elaborato determina il valore di security_result.severity . Se level è "Info", il valore è "INFORMATIONAL". Se level è "Errore", il valore è "ERROR". Se level è "Avviso", il valore è "MEDIUM". |
log |
metadata.description |
Se descr è vuoto, il valore di log del log non elaborato viene mappato al campo metadata.description . |
logFiles |
about |
Per ogni elemento dell'array logFiles del log non elaborato, viene creato un oggetto about con file.full_path impostato su s3Object , asset.hostname impostato su s3Bucket e file.sha256 impostato su hashValue . |
log_processed.cause |
security_result.summary |
Il valore di log_processed.cause del log non elaborato viene mappato al campo security_result.summary . |
log_processed.ids |
intermediary.hostname |
Per ogni elemento dell'array log_processed.ids del log non elaborato, viene creato un oggetto intermediary con hostname impostato sul valore dell'elemento. |
log_processed.level |
security_result.severity |
Il valore di log_processed.level del log non elaborato viene mappato al campo security_result.severity . |
log_processed.msg |
metadata.description |
Il valore di log_processed.msg del log non elaborato viene mappato al campo metadata.description . |
log_processed.ts |
metadata.event_timestamp |
Il valore di log_processed.ts del log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
log_type |
metadata.log_type |
Il valore di log_type del log non elaborato viene mappato al campo metadata.log_type . Si tratta di un campo personalizzato aggiunto per il contesto. |
logevent.message |
security_result.description |
Il valore di logevent.message del log non elaborato viene mappato al campo security_result.description . Viene anche analizzato utilizzando grok per estrarre campi aggiuntivi. |
logGroup |
security_result.about.resource.name |
Il valore di logGroup del log non elaborato viene mappato al campo security_result.about.resource.name . |
logStream |
security_result.about.resource.attribute.labels |
Il valore di logStream del log non elaborato viene aggiunto come coppia chiave-valore a security_result.about.resource.attribute.labels con la chiave "logStream". |
memory_used |
additional.fields |
Il valore di memory_used del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "memory_used". |
metric_name |
additional.fields |
Il valore di metric_name del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "metric_name". |
metric_stream_name |
additional.fields |
Il valore di metric_stream_name del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "metric_stream_name". |
namespace |
principal.namespace |
Il valore di namespace del log non elaborato viene mappato al campo principal.namespace . |
owner |
principal.user.userid |
Il valore di owner del log non elaborato viene mappato al campo principal.user.userid . |
parameters |
additional.fields |
Il valore di parameters del log grezzo viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Parameters". |
Path |
principal.process.file.full_path |
Il valore di Path del log non elaborato viene mappato al campo principal.process.file.full_path . |
pid |
principal.process.pid |
Il valore di pid del log non elaborato viene mappato al campo principal.process.pid . |
PolicyName |
security_result.rule_name |
Il valore di PolicyName del log non elaborato viene mappato al campo security_result.rule_name . |
prin_host |
principal.hostname |
Il valore di prin_host del log non elaborato viene mappato al campo principal.hostname . |
principal_hostname |
principal.hostname |
Il valore di principal_hostname del log non elaborato viene mappato al campo principal.hostname . |
process |
principal.application |
Il valore di process del log non elaborato viene mappato al campo principal.application . |
rawData |
additional.fields |
Il valore di rawData del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Raw Data". |
Recommendation |
security_result.detection_fields |
Il valore di Recommendation del log non elaborato viene aggiunto come coppia chiave-valore a security_result.detection_fields con la chiave "Recommendation". |
referral_url |
network.http.referral_url |
Il valore di referral_url del log non elaborato viene mappato al campo network.http.referral_url . |
region |
principal.location.name |
Il valore di region del log non elaborato viene mappato al campo principal.location.name . |
resp_code |
network.http.response_code |
Il valore di resp_code del log non elaborato viene convertito in un numero intero e mappato al campo network.http.response_code . |
resource_url |
network.http.referral_url |
Il valore di resource_url del log non elaborato viene mappato al campo network.http.referral_url . |
ResourceType |
target.resource.resource_subtype |
Il valore di ResourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
response_body |
additional.fields |
Il valore di response_body dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Corpo della risposta". |
Role |
target.resource.product_object_id |
Il valore di Role del log non elaborato viene mappato al campo target.resource.product_object_id . |
s3_bucket_path |
target.file.full_path |
Il valore di s3_bucket_path del log non elaborato viene mappato al campo target.file.full_path . |
sec_result.category |
security_result.category |
Il valore di sec_result.category deriva dalla logica del parser. Se descr contiene "authentication is required", il valore è "AUTH_VIOLATION". |
sec_result.description |
security_result.description |
Il valore di sec_result.description deriva dalla logica del parser. Se presente, è impostato sul valore di cloudwatchLog . |
sec_result.severity |
security_result.severity |
Il valore di sec_result.severity deriva dalla logica del parser. Viene impostato in base al valore di severity o level . |
sec_result.summary |
security_result.summary |
Il valore di sec_result.summary deriva dalla logica del parser. Se presente, è impostato sul valore di log_processed.cause o errorMessage . |
security_result |
security_result |
L'oggetto security_result è costruito a partire da vari campi e dalla logica del parser. |
serverId |
additional.fields |
Il valore di serverId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "server_id". |
severity |
security_result.severity |
Il valore di severity dal log non elaborato, convertito in maiuscolo e normalizzato, viene mappato al campo security_result.severity . |
Source |
principal.hostname |
Il valore di Source del log non elaborato viene mappato al campo principal.hostname . |
source |
principal.hostname |
Il valore di source del log non elaborato viene mappato al campo principal.hostname . |
SourceIP |
principal.ip |
Il valore di SourceIP del log non elaborato viene mappato al campo principal.ip . |
src_port |
principal.port |
Se src_port è "80", viene convertito in un numero intero e mappato al campo principal.port , mentre network.application_protocol è impostato su "HTTP". |
stream |
additional.fields |
Il valore di stream del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "stream". |
subscriptionFilters |
security_result.about.resource.attribute.labels |
Per ogni elemento dell'array subscriptionFilters del log non elaborato, viene aggiunta una coppia chiave-valore a security_result.about.resource.attribute.labels con la chiave "subscriptionFilter" e il valore dell'array. |
support_contact |
target.resource.attribute.labels |
Il valore di support_contact del log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Support Contact". |
t_ip |
target.ip |
Il valore di t_ip dal log non elaborato, dopo la rimozione dei trattini, viene analizzato come indirizzo IP e mappato al campo target.ip se l'operazione va a buon fine. |
time |
metadata.event_timestamp |
Il valore di time del log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
timestamp |
metadata.event_timestamp |
Il valore di timestamp del log non elaborato viene convertito in un timestamp utilizzando vari formati e mappato al campo metadata.event_timestamp . |
tls |
network.tls.version |
Il valore di tls del log non elaborato viene mappato al campo network.tls.version . |
transferDetails.serverId |
additional.fields |
Il valore di transferDetails.serverId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "server_id". |
transferDetails.sessionId |
network.session_id |
Il valore di transferDetails.sessionId del log non elaborato viene mappato al campo network.session_id . |
transferDetails.username |
principal.user.user_display_name |
Il valore di transferDetails.username del log non elaborato viene mappato al campo principal.user.user_display_name . |
ts |
metadata.event_timestamp |
Il valore di ts del log non elaborato, combinato con il fuso orario, se disponibile, viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
type |
metadata.product_event_type |
Il valore di type del log non elaborato viene mappato al campo metadata.product_event_type . |
unit |
additional.fields |
Il valore di unit del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "unit". |
url |
target.url |
Il valore di url del log non elaborato viene mappato al campo target.url . |
url_back_to_product |
metadata.url_back_to_product |
Il valore di url_back_to_product del log non elaborato viene mappato al campo metadata.url_back_to_product . |
User |
principal.user.userid |
Il valore di User del log non elaborato viene mappato al campo principal.user.userid . |
user |
target.user.userid , metadata.event_type , extensions.auth.mechanism |
Se user è presente, metadata.event_type è impostato su "USER_LOGIN", extensions.auth.mechanism è impostato su "NETWORK" e il valore di user è mappato a target.user.userid . |
value.count |
additional.fields |
Il valore di value.count del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "count". |
value.max |
additional.fields |
Il valore di value.max del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "max". |
value.min |
additional.fields |
Il valore di value.min del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "min". |
value.sum |
additional.fields |
Il valore di value.sum del log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "sum". |
workflowId |
additional.fields |
Il valore di workflowId del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "workflowId". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.