Come Esportare i Log di AWS CloudTrail

Come Esportare i Log di AWS CloudTrail

SOC Prime Team
SOC Prime Team linkedin icon Segui

Negli ultimi 90 giorni di eventi di gestione, usa la console di CloudTrail (Cronologia eventi → Scarica eventi → JSON) o aws cloudtrail lookup-events. Per eventi più vecchi, o per eventi di dati come le letture di oggetti S3, leggi i file di log del tuo trail in S3. Si trovano sotto s3://<bucket>/AWSLogs/<account-id>/CloudTrail/<region>/YYYY/MM/DD/.

CloudTrail è il registro audit del tuo piano di controllo AWS: ogni accesso alla console, ogni chiamata API, ogni assunzione di ruolo. In un incidente cloud, è la prima cosa che tutti chiedono. Prime Core ha 262 regole di rilevamento per CloudTrail, mappate a 177 tecniche MITRE ATT&CK. Tra queste: uso improprio di account cloud (T1078.004), attaccanti che spengono la registrazione cloud (T1562.008) e furto di dati dall’archiviazione cloud (T1530).

Prima di iniziare

Cronologia degli eventi e trail sono cose diverse. La cronologia degli eventi è sempre attiva e gratuita. Mantiene 90 giorni di eventi di gestione, per regione. Un trail è qualcosa che configuri: scrive su S3, mantiene i log per tutto il tempo che desideri e può includere eventi di dati. Controlla cosa hai:

aws cloudtrail describe-trails

aws cloudtrail get-trail-status --name <trail-name>

IsLogging: false su un trail che dovrebbe essere attivo è una constatazione in sé.

Le regioni sono importanti. La cronologia eventi è per regione, e gli eventi di servizi globali come IAM solitamente si trovano in us-east-1. Se stai cercando una chiamata CreateUser in eu-west-1, non la troverai.

Permessi. cloudtrail:LookupEvents per la cronologia eventi. Per i file del trail, s3:ListBucket e s3:GetObject sul bucket, più kms:Decrypt se il trail è crittografato con una chiave KMS.

Opzione 1: download dalla console

Aprire CloudTrail, andare a Cronologia eventi, impostare l’intervallo di tempo e eventuali filtri (nome evento, utente, risorsa), quindi scegliere Scarica eventi → JSON. Il download rispetta i tuoi filtri, quindi controllali prima. Copre solo la regione corrente.

Opzione 2: lookup-events dalla CLI

aws cloudtrail lookup-events --region us-east-1 

--start-time 2026-10-19T00:00:00Z --end-time 2026-10-20T00:00:00Z

--output json > ct_use1_1019.json

Due cose da sapere. Primo, ogni risultato incapsula l’evento reale come una stringa JSON stringa in CloudTrailEvent. Aprilo in un evento pulito per linea:

jq -c '.Events[].CloudTrailEvent | fromjson' ct_use1_1019.json > ct_use1_1019.jsonl

Secondo, lookup-events ha un limite di velocità per account e regione e accetta solo un filtro –lookup-attributes per chiamata. Finestre temporali ampie richiedono tempo, quindi restringile dove puoi. Per coprire tutte le regioni, esegui un loop su aws ec2 describe-regions –query ‘Regions[].RegionName’ –output text.

Opzione 3: File dei trail da S3

Questa è la rotta per la cronologia oltre i 90 giorni e per gli eventi di dati:

aws s3 cp s3://my-trail-bucket/AWSLogs/123456789012/CloudTrail/eu-west-1/2026/10/19/ ./ct/ --recursive

gunzip ./ct/*.json.gz

jq -c '.Records[]' ./ct/*.json > ct_euw1_1019.jsonl

Ogni file contiene un array Records, e la linea jq appiattisce tutti in un evento per linea. I trail dell’organizzazione aggiungono l’ID organizzativo al percorso: AWSLogs/<org-id>/<account-id>/CloudTrail/…. Se usi CloudTrail Lake, puoi eseguire SQL sui tuoi eventi e salvare invece i risultati.

Cosa cercare

EventoPerché è importante
ConsoleLoginControlla additionalEventData.MFAUsed, fallimenti e IP di origine che non riconosci
CreateUser, CreateAccessKey, AttachUserPolicyNuove identità e chiavi: persistenza classica ed escalation dei privilegi
StopLogging, DeleteTrail, PutEventSelectorsQualcuno sta riducendo ciò che CloudTrail vede
AssumeRole da sorgenti straneMovimento laterale tra ruoli e account
Raffiche di errorCode: AccessDeniedRicognizione con credenziali rubate
GetSecretValue, GetObject rafficheAccesso ai dati; GetObject appare solo se gli eventi dati S3 sono attivati

Carica, sanitizza e rivedi in LogTotal

  1. Caricamento. Aprire logtotal.com e inserisci il file .jsonl (o .json).
  2. Sanitizza. [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
  3. Rivedi. 

Quando va male

SintomoCausa probabileFix
lookup-events non restituisce nullaRegione sbagliata; gli eventi IAM di solito si trovano in us-east-1Interroga us-east-1, o esegui un loop su tutte le regioni
Niente di più vecchio di 90 giorniRitenzione della cronologia eventiUsa i file del trail in S3
Nessun evento GetObjectGli eventi dati S3 non sono abilitati sul trailAtteso; abilitale per il futuro
AccessDenied leggendo i file del trailManca kms:Decrypt, o la politica del bucketCorreggi IAM o la politica del bucket
ThrottlingExceptionlimite di velocità lookup-eventsFinestre più piccole; lascia che la CLI riprovi

FAQ

La cronologia eventi include eventi di dati?

No. Solo eventi di gestione. Gli eventi di dati esistono solo se è stato configurato un trail o uno store di dati di eventi per registrarli.

Quanto velocemente compaiono gli eventi?

Di solito entro pochi minuti dalla chiamata API. I file del trail in S3 arrivano in blocchi, quindi un evento molto recente potrebbe non essere ancora in un file.

Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e aumentare immediatamente il valore, prenota ora un incontro con gli esperti di SOC Prime.