Raccogliere i log di accesso al server AWS S3
Questo documento spiega come raccogliere i log di accesso al server AWS S3 configurando un feed Google Security Operations. Il parser estrae i campi utilizzando i pattern grok, gestisce il potenziale input JSON e mappa i campi estratti all'UDM. Esegue trasformazioni dei dati, conversioni dei tipi e logica condizionale in base alla presenza e ai valori di campi specifici per garantire una rappresentazione accurata di UDM.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Accesso privilegiato ad AWS
Come configurare il logging dell'accesso al server AWS S3
Google SecOps supporta la raccolta dei log utilizzando Amazon S3 tramite Amazon SQS.
- Accedi alla console AWS Management.
- Accedi alla console Amazon S3.
- Vai ad Amazon S3 > Buckets.
- Seleziona un bucket esistente o creane uno nuovo.
- Fai clic su Proprietà.
- Nella sezione Registrazione dell'accesso al server, fai clic su Modifica.
- Seleziona Attiva.
- Nel campo Bucket di destinazione, inserisci un nome per il nuovo bucket a cui inviare gli oggetti record di log o seleziona un bucket esistente come destinazione.
- Fai clic su Salva modifiche.
- Per creare la coda SQS per il bucket S3, configura un'istanza Amazon SQS con l'archiviazione S3. Per saperne di più, consulta Configurazione di un bucket per le notifiche (argomento SNS o coda SQS).
In base al servizio e alla regione, identifica gli endpoint per la connettività facendo riferimento alla seguente documentazione AWS:
- Per informazioni su qualsiasi origine di logging, consulta Endpoint e quote di AWS Identity and Access Management.
- Per informazioni sulle origini di logging S3, consulta Endpoint e quote di Amazon Simple Storage Service.
- Per informazioni sulle origini dei log SQS, consulta Endpoint e quote di Amazon Simple Queue Service.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed > Aggiungi nuovo feed
- Hub dei contenuti > Pacchetti di contenuti > Inizia
Come configurare il feed di accesso al servizio AWS S3
- Fai clic sul pacchetto Amazon Cloud Platform.
- Individua il tipo di log Accesso al servizio AWS S3.
- Google SecOps supporta la raccolta dei log utilizzando un ID chiave di accesso e un metodo segreto. Per creare l'ID chiave di accesso e il segreto, consulta la sezione Configurare l'autenticazione dello strumento con AWS.
Specifica i valori nei seguenti campi.
- Tipo di origine: Amazon SQS V2
- Nome coda: il nome della coda SQS da cui leggere
- URI S3: l'URI del bucket.
s3://your-log-bucket-name/
- Sostituisci
your-log-bucket-name
con il nome effettivo del bucket S3.
- Sostituisci
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.
Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.
ID chiave di accesso alla coda SQS: una chiave di accesso all'account che è una stringa alfanumerica di 20 caratteri.
Chiave di accesso segreta della coda SQS: una chiave di accesso all'account che è una stringa alfanumerica di 40 caratteri.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Fai clic su Crea feed.
Per ulteriori informazioni sulla configurazione di più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
aclRequired |
target.resource.attribute.labels.key : "aclRequired"target.resource.attribute.labels.value : Valore di aclRequired |
Mappato direttamente dal campo del log non elaborato aclRequired . |
authenticationtype |
extensions.auth.auth_details |
Mappato direttamente dal campo del log non elaborato authenticationtype . |
bucket |
target.resource.name |
Mappato direttamente dal campo del log non elaborato bucket . |
bucket |
target.resource.resource_type : "STORAGE_BUCKET" |
Il parser imposta resource_type su "STORAGE_BUCKET" se il campo bucket è presente. |
bucketowner |
target.resource.product_object_id |
Mappato direttamente dal campo del log non elaborato bucketowner . |
bytes_sent |
network.sent_bytes |
Mappato direttamente dal campo del log non elaborato bytes_sent dopo la conversione in un numero intero senza segno e la sostituzione di "-" con "0". |
ciphersuite |
network.application_protocol : "HTTPS" |
Il parser imposta application_protocol su "HTTPS" se il campo ciphersuite è presente. |
ciphersuite |
network.tls.cipher |
Mappato direttamente dal campo del log non elaborato ciphersuite . |
errorcode |
security_result.action_details |
Mappato direttamente dal campo del log non elaborato errorcode . |
errorcode |
security_result.action : "BLOCK" |
Il parser imposta action su "BLOCK" se il campo errorcode contiene "AccessDenied" (senza distinzione tra maiuscole e minuscole). |
hostheader |
target.hostname |
Estratto dal campo log grezzo hostheader , con la potenziale rimozione del numero di porta. |
hostheader |
target.port |
Estratto dal campo log grezzo hostheader se è presente un numero di porta. |
hostid |
target.resource.attribute.labels.key : "S3 Extended Request ID"target.resource.attribute.labels.value : Value of hostid |
Mappato direttamente dal campo del log non elaborato hostid . |
http_capture |
network.http.method |
Il metodo HTTP viene estratto dal campo http_capture . |
http_capture |
network.http.version |
La versione HTTP viene estratta dal campo http_capture . |
http_capture |
target.url |
L'URL di destinazione viene creato utilizzando hostheader e http_request_uri (estratti da http_capture ), con il prefisso "http://" o "https://" in base alla presenza di ciphersuite . |
httpstatus |
network.http.response_code |
Mappato direttamente dal campo del log non elaborato httpstatus dopo la conversione in un numero intero. |
object_version_id |
target.resource.product_object_id |
Mappato direttamente dal campo del log non elaborato object_version_id . |
objectsize |
target.file.size |
Mappato direttamente dal campo del log non elaborato objectsize dopo la conversione in un numero intero senza segno e la sostituzione di "-" con "0". |
operation |
metadata.product_event_type |
Mappato direttamente dal campo del log non elaborato operation . |
referrer |
network.http.referral_url |
Mappato direttamente dal campo del log non elaborato referrer dopo la rimozione delle virgolette. |
remoteip |
metadata.event_type : "USER_RESOURCE_ACCESS" |
Il parser imposta event_type su "USER_RESOURCE_ACCESS" se il campo remoteip è vuoto. |
remoteip |
principal.ip |
Mappato direttamente dal campo del log non elaborato remoteip . |
requester |
target.resource.attribute.labels.key : "Access Point ARN"target.resource.attribute.labels.value : Value of requester |
Mappato direttamente dal campo del log non elaborato requester . |
requester_user |
principal.user.userid |
Mappato direttamente dal campo del log non elaborato requester_user . |
requestid |
network.session_id |
Mappato direttamente dal campo del log non elaborato requestid . |
request_time_ms |
network.session_duration.nanos |
Mappato direttamente dal campo del log non elaborato request_time_ms dopo la conversione in un numero intero, la sostituzione di "-" con "0" e il riempimento con zeri per rappresentare i nanosecondi. |
signatureversion |
target.resource.attribute.labels.key : "Versione della firma"target.resource.attribute.labels.value : Valore di signatureversion |
Mappato direttamente dal campo del log non elaborato signatureversion . |
time |
metadata.event_timestamp |
Analizzato dal campo del log non elaborato time e convertito in un timestamp. |
tlsVersion |
network.tls.version |
Mappato direttamente dal campo del log non elaborato tlsVersion . |
useragent |
network.http.user_agent |
Mappato direttamente dal campo del log non elaborato useragent dopo la rimozione delle virgolette. |
(Parser Logic) | metadata.event_type : "NETWORK_HTTP" |
Il parser imposta il valore predefinito di event_type su "NETWORK_HTTP". |
(Parser Logic) | metadata.log_type : "AWS_S3_SERVER_ACCESS" |
Il parser imposta log_type su "AWS_S3_SERVER_ACCESS". |
(Parser Logic) | metadata.product_name : "AWS S3 Server Access" |
Il parser imposta product_name su "AWS S3 Server Access". |
(Parser Logic) | metadata.product_version : "HTTP/http_version " |
Il parser imposta product_version utilizzando http_version estratto. |
(Parser Logic) | metadata.vendor_name : "AMAZON" |
Il parser imposta vendor_name su "AMAZON". |
(Parser Logic) | network.application_protocol : "HTTP" |
Il parser imposta application_protocol su "HTTP" se il campo ciphersuite non è presente. |
(Parser Logic) | timestamp |
Il parser imposta l'evento timestamp sull'ora corrente quando l'evento viene elaborato. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.