Audit logging di IAM

Questo documento descrive gli audit log creati da Identity and Access Management nell'ambito degli audit log di Cloud.

Panoramica

I servizi Google Cloud scrivono audit log per aiutarti a rispondere alle domande "Chi ha creato cosa, dove e quando" nelle risorse di Google Cloud.

I progetti Google Cloud contengono solo gli audit log delle risorse che si trovano direttamente all'interno del progetto Cloud. Altre risorse Google Cloud, come cartelle, organizzazioni e account di fatturazione, contengono i log di controllo per l'entità.

Per una panoramica generale di Cloud Audit Logs, consulta la panoramica sugli audit log di Cloud. Per una comprensione più approfondita del formato degli audit log, consulta la sezione Informazioni sugli audit log.

Log di controllo disponibili

Per IAM sono disponibili i seguenti tipi di log di controllo:

  • Audit log delle attività di amministrazione

    Include "operazioni di scrittura come amministratore per la scrittura di metadati o informazioni di configurazione.

    Non puoi disabilitare i log di controllo dell'attività dell'amministratore.

  • Audit log degli accessi ai dati

    Include "operazioni di lettura" come amministratore per la lettura di metadati o informazioni di configurazione. Sono incluse anche operazioni di tipo "lettura dati" e "scrittura dati" per la lettura o la scrittura di dati forniti dall'utente.

    Per ricevere gli audit log di accesso ai dati, devi abilitarli esplicitamente.

Per descrizioni più complete dei tipi di log di controllo, consulta Tipi di log di controllo.

Operazioni con audit

Di seguito sono riepilogate le operazioni API corrispondenti a ogni tipo di log di controllo in IAM:

Categoria di audit log Operazioni IAM
Log delle attività di amministrazione (ADMIN_READ)

Ruoli personalizzati:

Escludi criteri:

Account di servizio:

Chiavi account di servizio:

Pool di identità dei carichi di lavoro:

Provider di pool di identità per i carichi di lavoro:

Log di accesso ai dati (DATA_READ)

Credenziali:

ExchangeToken

Ruoli personalizzati:

Escludi criteri:

Ruoli modificabili:

QueryGrantableRoles

Criteri:

GetEffectivePolicy1

Account di servizio:

Chiavi account di servizio:

Pool di identità dei carichi di lavoro:

Provider di pool di identità per i carichi di lavoro:

1 GetEffectivePolicy è un metodo privato nell'API IAM. Quando utilizzi l'API Policy troubleshooter, chiama GetEffectivePolicy internamente.

Puoi anche visualizzare esempi di voci del log di controllo per gli account di servizio.

Formato degli audit log

Le voci del log di controllo includono i seguenti oggetti:

  • La voce di log stessa, che è un oggetto di tipo LogEntry. Di seguito vengono riportati alcuni campi utili:

    • logName contiene l'ID risorsa e il tipo di log di controllo.
    • resource contiene il target dell'operazione controllata.
    • timeStamp contiene il tempo dell'operazione controllata.
    • protoPayload contiene le informazioni controllate.
  • I dati dell'audit logging, che è un oggetto AuditLog conservato nel campo protoPayload della voce di log.

  • Informazioni di controllo facoltative specifiche del servizio, che sono un oggetto specifico del servizio. Per le integrazioni precedenti, questo oggetto è conservato nel campo serviceData dell'oggetto AuditLog; le integrazioni successive utilizzano il campo metadata.

Per altri campi in questi oggetti e per interpretarli, consulta la sezione Informazioni sui log di controllo.

Nome log

I nomi degli audit log di Cloud includono identificatori di risorsa che indicano il progetto Cloud o altra entità Google Cloud proprietaria dei log di controllo e se il log contiene dati di audit logging per attività di amministrazione, accesso ai dati, criteri rifiutati o evento di sistema.

Di seguito sono riportati i nomi dei log di controllo, incluse le variabili per gli identificatori delle risorse:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Nome servizio

I log di controllo IAM utilizzano uno dei seguenti nomi di servizi:

  • iam.googleapis.com: utilizzato per l'API IAM e per i metodi chiamati internamente dall'API Policy Troubleshooting.
  • iamcredentials.googleapis.com: utilizzato per l'API Service Account Credentials, che consente di creare credenziali di breve durata per gli account di servizio.

  • sts.googleapis.com: utilizzato per l'API Security Token Service, che scambia le credenziali Google o di terze parti con un token di accesso di breve durata di Google.

Per un elenco di tutti i nomi dei servizi dell'API Cloud Logging e del corrispondente tipo di risorsa monitorata, consulta la sezione Mappare i servizi alle risorse.

Tipi di risorse

I log di controllo IAM utilizzano uno dei seguenti tipi di risorsa:

  • api: una richiesta per elencare le informazioni su più ruoli o criteri IAM.
  • audited_resource: richiesta di scambio di credenziali per un token di accesso Google.
  • iam_role: un ruolo personalizzato IAM.
  • service_account: un account di servizio IAM o una chiave di account di servizio.

Per un elenco di tutti i tipi di risorse monitorate in Cloud Logging e le informazioni descrittive, consulta i tipi di risorse monitorate.

Abilitazione degli audit log

I log di controllo dell'attività dell'amministratore sono sempre abilitati, non puoi disattivarli.

Gli audit log di accesso ai dati sono disabilitati per impostazione predefinita e non vengono scritti, a meno che non siano esplicitamente abilitati (ad eccezione degli audit log di accesso ai dati per BigQuery, che non possono essere disattivati).

Per informazioni sull'abilitazione di alcuni o di tutti gli audit log di accesso ai dati, vedi Configurazione degli audit log di accesso ai dati.

Autorizzazioni e ruoli

Le autorizzazioni e i ruoli IAM determinano la tua capacità di accedere ai dati dei log di controllo nelle risorse Google Cloud.

Per decidere quali autorizzazioni e ruoli specifici per il logging si applicano al tuo caso d'uso, considera quanto segue:

  • Il ruolo Visualizzatore log (roles/logging.viewer) consente l'accesso in sola lettura ai log di controllo Attività di amministrazione, Criteri rifiutati e Evento di sistema. Se hai solo questo ruolo, non puoi visualizzare i log di controllo di accesso ai dati che si trovano nei bucket _Required e _Default.

  • Il ruolo Visualizzatore log privati(roles/logging.privateLogViewer) include le autorizzazioni contenute in roles/logging.viewer, oltre alla possibilità di leggere i log di controllo di accesso ai dati nei bucket _Required e _Default.

    Tieni presente che se questi log privati sono archiviati in bucket definiti dall'utente, qualsiasi utente che dispone delle autorizzazioni per leggere i log in tali bucket può leggere i log privati. Per saperne di più sui bucket di log, consulta la sezione Panoramica su routing e archiviazione.

Per ulteriori informazioni sulle autorizzazioni IAM e sui ruoli che si applicano ai dati degli audit log, consulta Controllo degli accessi con IAM.

Visualizza i log

Per eseguire una query sugli audit log, devi conoscere il nome del log di controllo, che include l'identificatore di risorsa del progetto Cloud, della cartella, dell'account di fatturazione o dell'organizzazione per cui vuoi visualizzare le informazioni dell'audit logging. Nella query puoi specificare ulteriormente altri campi indicizzati di LogEntry, ad esempio resource.type. Per ulteriori informazioni sulle query, consulta Creare query in Esplora log.

Puoi visualizzare gli audit log in Cloud Logging utilizzando Cloud Console, l'interfaccia a riga di comando di Google Cloud o l'API Logging.

Console

In Cloud Console, puoi utilizzare Esplora log per recuperare le voci dei log di controllo relative al progetto, alla cartella o all'organizzazione Cloud:

  1. In Cloud Console, vai alla pagina Logging> Esplora log.

    Vai a Esplora log

  2. Seleziona un progetto, una cartella o un'organizzazione Cloud esistente.

  3. Nel riquadro Generatore di query procedi nel seguente modo:

    • In Tipo di risorsa, seleziona la risorsa Google Cloud di cui vuoi visualizzare i log di controllo.

    • In Nome log, seleziona il tipo di log di controllo che vuoi visualizzare:

      • Per i log di controllo dell'attività dell'amministratore, seleziona attività.
      • Per i log di controllo di accesso ai dati, seleziona data_access.
      • Per i log di controllo degli eventi di sistema, seleziona system_event.
      • Per i log di controllo Rifiutati dai criteri, seleziona criterio.

    Se non vedi queste opzioni, non sono disponibili audit log di quel tipo nel progetto, nella cartella o nell'organizzazione Cloud.

    Se riscontri problemi durante il tentativo di visualizzare i log in Esplora log, consulta le informazioni sulla risoluzione dei problemi.

    Per ulteriori informazioni sull'esecuzione di query utilizzando Esplora log, consulta la sezione Creare query in Esplora log.

gcloud

L'interfaccia a riga di comando di Google Cloud fornisce un'interfaccia a riga di comando per l'API Logging. Fornisci un identificatore di risorsa valido in ciascuno dei nomi di log. Ad esempio, se la query include un PROJECT_ID, l'identificatore del progetto fornito deve fare riferimento al progetto Cloud attualmente selezionato.

Per leggere le voci dell'audit log a livello di progetto Cloud, esegui il comando seguente:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Per leggere le voci del log di controllo a livello di cartella, esegui il comando seguente:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Per leggere le voci del log di controllo a livello di organizzazione, esegui il comando seguente:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Per leggere le voci del log di controllo a livello di account Cloud Billing, esegui questo comando:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Aggiungi il flag --freshness al comando per leggere i log creati da più di un giorno.

Per ulteriori informazioni sull'utilizzo dell'interfaccia a riga di comando gcloud, vedi gcloud logging read.

API

Durante la creazione delle query, fornisci un identificatore di risorsa valido in ciascuno dei nomi di log. Ad esempio, se la query include un elemento PROJECT_ID, l'identificatore del progetto fornito deve fare riferimento al progetto cloud attualmente selezionato.

Ad esempio, per utilizzare l'API Logging per visualizzare le voci di log di controllo a livello di progetto, procedi come segue:

  1. Vai alla sezione Prova questa API nella documentazione del metodo entries.list.

  2. Inserisci quanto segue nella sezione Corpo della richiesta del modulo Prova questa API. Se fai clic su questo modulo precompilato, il corpo della richiesta viene compilato automaticamente, ma devi fornire un elemento PROJECT_ID valido in ciascuno dei nomi di log.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Fai clic su Execute (Esegui).

Audit log dei percorsi

Puoi indirizzare i log di controllo alle destinazioni supportate nello stesso modo in cui puoi instradare altri tipi di log. Ecco alcuni motivi per cui potresti voler eseguire il routing dei log di controllo:

  • Per conservare gli audit log per un periodo di tempo più lungo o per utilizzare funzionalità di ricerca più avanzate, puoi instradare copie dei log a Cloud Storage, BigQuery o Pub/Sub. Con Pub/Sub, puoi eseguire il routing ad altre applicazioni, altri repository e a terze parti.

  • Per gestire i log di controllo in un'intera organizzazione, puoi creare sink aggregati per indirizzare i log da uno o tutti i progetti Cloud dell'organizzazione.

  • Se i log di controllo di Data Access abilitati eseguono il push dei progetti Cloud oltre le allocazioni dei log, puoi creare sink che escludono gli audit log di accesso ai dati da Logging.

Per istruzioni sui log di routing, vedi Configurare e gestire i sink.

Prezzi

Per informazioni sui prezzi di Cloud Logging, consulta i prezzi della suite operativa di Google Cloud: Cloud Logging.

Passaggi successivi