Raccogli i log AWS CloudWatch
Questo documento spiega come importare i log di AWS CloudWatch in Google Security Operations utilizzando Amazon S3.
AWS CloudWatch è un servizio di monitoraggio e osservabilità che raccoglie dati operativi sotto forma di log, metriche ed eventi da risorse e applicazioni AWS. Questa integrazione utilizza Amazon Data Firehose per trasmettere in streaming i dati dei log CloudWatch a un bucket S3, che Google SecOps acquisisce utilizzando un feed Amazon S3 V2.
Prima di iniziare
- Un'istanza Google SecOps
- Accesso privilegiato alla Console di gestione AWS con autorizzazioni per gestire:
- Amazon CloudWatch Logs (gruppi di log, filtri di sottoscrizione)
- Amazon Data Firehose (flussi di distribuzione)
- Amazon S3 (bucket)
- AWS IAM (ruoli, criteri, utenti)
Configurare il bucket AWS S3
- 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,
cwlogs-to-secops).
Configura il ruolo IAM per Amazon Data Firehose
Amazon Data Firehose richiede un ruolo IAM per scrivere i log nel bucket S3.
Crea il criterio IAM
- Nella console AWS, vai a IAM > Policy > Crea policy.
- Seleziona la scheda JSON.
Incolla la seguente policy (sostituisci
cwlogs-to-secopscon il nome del bucket effettivo):{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3Delivery", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::cwlogs-to-secops", "arn:aws:s3:::cwlogs-to-secops/*" ] }, { "Sid": "CloudWatchLogging", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/kinesisfirehose/cwlogs-to-secops:log-stream:*" } ] }Fai clic su Avanti.
Nel campo Nome policy, inserisci
FirehoseS3DeliveryPolicy.Fai clic su Crea policy.
Crea il ruolo IAM
- Vai a IAM > Ruoli > Crea ruolo.
- Seleziona Norme di attendibilità personalizzate.
Incolla la seguente policy di attendibilità:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Fai clic su Avanti.
Cerca e seleziona FirehoseS3DeliveryPolicy.
Fai clic su Avanti.
Nel campo Nome ruolo, inserisci
FirehoseToS3Role.Fai clic su Crea ruolo.
Crea lo stream Amazon Data Firehose
- Apri la console Kinesis all'indirizzo https://console.aws.amazon.com/kinesis.
- Nel riquadro di navigazione, seleziona Amazon Data Firehose.
- Fai clic su Crea stream Firehose.
- In Scegli origine e destinazione, fornisci la seguente configurazione:
- Origine: seleziona PUT diretto.
- Destinazione: seleziona Amazon S3.
- Nel campo Nome stream Firehose, inserisci
cwlogs-to-secops. Nella sezione Trasforma record, nella sezione Decomprimi record di origine da Amazon CloudWatch Logs:
- Seleziona Attiva decompressione.
- Non selezionare Attiva l'estrazione dei messaggi.
Nella sezione Impostazioni destinazione:
- Bucket S3: seleziona il bucket S3
cwlogs-to-secops. - Prefisso bucket S3 (facoltativo): inserisci
cloudwatch-logs/. - Prefisso output errori bucket S3 (facoltativo): inserisci
firehose-errors/.
- Bucket S3: seleziona il bucket S3
Nella sezione Suggerimenti per il buffer:
- Dimensione del buffer:
5MiB (valore predefinito). - Intervallo di buffer:
300secondi (impostazione predefinita).
- Dimensione del buffer:
Nella sezione Impostazioni avanzate:
- Crittografia lato server: facoltativa. Attiva se è necessaria la crittografia.
- Registrazione degli errori: seleziona Attivata (opzione consigliata).
- Autorizzazioni: seleziona Scegli ruolo IAM esistente, quindi seleziona
FirehoseToS3Role.
Fai clic su Crea stream Firehose.
Attendi che lo Stato dello stream mostri Attivo.
Configura il ruolo IAM per CloudWatch Logs
CloudWatch Logs richiede un ruolo IAM per inviare i dati di log al flusso Firehose.
Crea il criterio IAM
- Vai a IAM > Policy > Crea policy.
- Seleziona la scheda JSON.
Incolla il seguente criterio (sostituisci
<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" } ] }Fai clic su Avanti.
Nel campo Nome policy, inserisci
CWLtoFirehoseWritePolicy.Fai clic su Crea policy.
Crea il ruolo IAM
- Vai a IAM > Ruoli > Crea ruolo.
- Seleziona Norme di attendibilità personalizzate.
Incolla la seguente policy di attendibilità (sostituisci
<region>con la tua regione AWS):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Fai clic su Avanti.
Cerca e seleziona CWLtoFirehoseWritePolicy.
Fai clic su Avanti.
Nel campo Nome ruolo, inserisci
CWLtoFirehoseRole.Fai clic su Crea ruolo.
Crea un filtro di sottoscrizione CloudWatch Logs
- Nella console AWS, vai a CloudWatch > Log > Gruppi di log.
- Seleziona il gruppo di log di destinazione a cui vuoi eseguire lo streaming in Google SecOps.
- Seleziona la scheda Filtri abbonamenti.
- Fai clic su Crea > Crea filtro di abbonamento Amazon Data Firehose.
- Fornisci i seguenti dettagli di configurazione:
- Destinazione: seleziona lo stream Firehose
cwlogs-to-secops. - Concedi autorizzazione: seleziona il ruolo
CWLtoFirehoseRole. - Nome filtro iscrizione: inserisci un nome descrittivo (ad esempio,
secops-all-events). - Formato log: seleziona Altro.
- Pattern di filtro della sottoscrizione: lascia vuoto per inviare tutti gli eventi o inserisci un pattern di filtro per inviare solo eventi specifici.
- Destinazione: seleziona lo stream Firehose
Fai clic su Avvia streaming.
Configurare l'utente IAM per Google SecOps
Google SecOps ha bisogno di un utente IAM con accesso al bucket S3 per importare i log forniti.
- 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 il tag della 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 Norme relative alle 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.
Configura un feed in Google SecOps per importare i log AWS CloudWatch
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Inserisci un nome univoco per il nome del feed.
- Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona AWS CloudWatch come tipo di log.
- Fai clic su Avanti e poi su Invia.
- Specifica i valori per i seguenti campi:
- URI S3:
s3://cwlogs-to-secops/cloudwatch-logs/ - Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- Età massima file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni).
- 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.
- URI S3:
- Fai clic su Avanti e poi su Invia.
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 "Attempts Made". |
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 del log grezzo 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 del 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 del 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 grezzo 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 è "MEDIA". |
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 non elaborato 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 del 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 è derivato 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 è derivato dalla logica del parser. Se presente, è impostato sul valore di cloudwatchLog. |
sec_result.severity |
security_result.severity |
Il valore di sec_result.severity è derivato 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 è derivato dalla logica del parser. È impostato sul valore di log_processed.cause o errorMessage, se presente. |
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 grezzo 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.