Usa gcloud logging read con un filtro su cloudaudit.googleapis.com, o esegui la stessa query in Logs Explorer e scarica i risultati come JSON:
gcloud logging read 'logName:"cloudaudit.googleapis.com" AND timestamp>="2026-10-19T00:00:00Z" AND timestamp<"2026-10-20T00:00:00Z"'
--project=my-project --format=json > gcp_audit_1019.json
I log di controllo delle attività amministrative sono sempre attivi e conservati per 400 giorni. I log di accesso ai dati sono disabilitati per impostazione predefinita, tranne che per BigQuery, e vengono conservati per 30 giorni una volta abilitati.
I Cloud Audit Logs registrano chi ha cambiato cosa nei tuoi progetti Google Cloud: concessioni IAM, nuove chiavi di account di servizio, modifiche ai firewall, VM avviate in regioni insolite. Prime Core ha 140 regole di rilevamento per i log di controllo di Google Cloud, mappati su 74 tecniche MITRE ATT&CK. Tra questi: abuso di account cloud (T1078.004), credenziali extra come nuove chiavi di account di servizio (T1098.001) e manomissione dei log stessi (T1562.008).
Prima di iniziare
Sappi quale log di controllo ti serve.
| Tipo | Attivo per impostazione predefinita? | Conservazione | Cosa contiene |
|---|---|---|---|
| Attività amministrativa | Sempre, non può essere disabilitato | 400 giorni | Modifiche alla configurazione e a IAM |
| Evento di sistema | Sempre | 400 giorni | Azioni intraprese dai sistemi Google sulle tue risorse |
| Accesso ai dati | No (eccetto BigQuery) | 30 giorni | Letture di dati e metadati |
| Policy denied | Yes | 30 giorni | Richieste bloccate da politiche di sicurezza |
Se la domanda è “chi ha letto questo bucket?” e i log di accesso ai dati non sono mai stati abilitati, la risposta non è in Cloud Logging.
Permessi. Logs Viewer (roles/logging.viewer) copre Attività Amministrativa, Evento di Sistema e Policy Denied. I log di accesso ai dati necessitano Private Logs Viewer (roles/logging.privateLogViewer).
Scopo. I log di controllo sono per progetto. L’attività a livello di organizzazione e cartella ha i suoi log. Fai query su questi con –organization=<ORG_ID> o –folder=<FOLDER_ID> invece di –project.
Opzione 1: Logs Explorer
Nel console, apri Logging → Logs Explorer, inserisci logName:”cloudaudit.googleapis.com”, imposta il intervallo di tempo, esegui la query e quindi scarica i risultati come JSON. Il download è limitato. Per intervalli più ampi, usa gcloud.
Opzione 2: gcloud logging read
Il comando in alto è la forma base. Tre dettagli risparmiano tempo.
Metti sempre l’intervallo di tempo nel filtro. Senza una condizione di timestamp, gcloud logging read si limita silenziosamente all’ultimo giorno (–freshness predefinito è 1d). Ciò sorprende quasi tutti una volta.
Alza il limite quando necessario. Aggiungi –limit=100000 (o qualunque si adatti) per finestre grandi.
Appiattisci per il caricamento. L’output è un array JSON. Trasformalo in una voce per linea:
jq -c '.[]' gcp_audit_1019.json > gcp_audit_1019.jsonl
Filtri utili più stretti:
# Solo Attività Amministrativa
logName="projects/my-project/logs/cloudaudit.googleapis.com/activity"
# nuove chiavi di account di servizio
protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey"
# tutto ciò che ha fatto una identità
protoPayload.authenticationInfo.principalEmail="sospetto-sa@my-project.iam.gserviceaccount.com"
Opzione 3: Storia completa dai sink
Se la tua organizzazione indirizza i log di controllo attraverso un sink a Cloud Storage o BigQuery, quella copia può andare oltre i bucket sopra. Ritira i file con gcloud storage cp, o interroga BigQuery e esporta il risultato come JSON.
Cosa cercare
| Metodo o campo | Perché è importante |
|---|---|
| CreateServiceAccountKey | Credenziali di lunga durata che un attaccante può portare via |
| SetIamPolicy | Concessioni di ruolo; controlla per roles/owner, roles/editor e allUsers |
| UpdateSink, DeleteSink, nuove esclusioni | Qualcuno sta reindirizzando o silenziando i log |
| v1.compute.instances.insert in regioni insolite | L’impronta classica del cryptomining |
| Rapide con status.code: 7 (PERMISSION_DENIED) | Credenziali rubate che esplorano cosa possono fare |
Carica, igienizza e rivedi su LogTotal
- Carica. Apri logtotal.com e inserisci il file .jsonl.
- Igienizza. [what gets masked: principal emails, project IDs, IPs, resource names]. Look it over before you continue.
- Rivedi.
Quando qualcosa va storto
| Sintomo | Probabile causa | Fix |
|---|---|---|
| Solo le ultime 24 ore ritornano | Nessun timestamp nel filtro, quindi –freshness=1d si applica | Inserisci la finestra nel filtro |
| Nessuna voce di Accesso ai Dati | I log di Accesso ai Dati non sono mai stati abilitati | Previsto; abilitali per il futuro |
| PERMISSION_DENIED in lettura log | Manca Private Logs Viewer per Accesso ai Dati | Richiedi roles/logging.privateLogViewer |
| I risultati si fermano in anticipo | Raggiunto il limite predefinito o esplicito | Aumenti –limit, o dividi la finestra |
| Cambiamenti a livello di Org mancanti | Hai interrogato un progetto | Utilizza –organization |
FAQ
Ci sono log di Google Workspace qui?
Solo se la tua organizzazione condivide i dati di Workspace con Google Cloud, e poi a livello di organizzazione.
E per quanto riguarda GKE?
GKE scrive i suoi log di audit Kubernetes nei Cloud Audit Logs anche