Informazioni sugli audit log

In questa pagina vengono descritte in dettaglio le voci di log di Cloud Audit Logs: la loro struttura, come leggerli e interpretarli.

Cloud Audit Logs fornisce i seguenti audit log per ciascun progetto Google Cloud: cartella e organizzazione:

  • Audit log delle attività di amministrazione
  • Audit log degli accessi ai dati
  • Audit log degli eventi di sistema
  • Audit log dei criteri negati

Per una panoramica generale di Cloud Audit Logs, consulta Audit log di Cloud.

Formato delle voci degli audit log

Una voce di audit log è un tipo di voce di log di Cloud Logging. Come tutti di log, una voce di audit log è archiviata in LogEntry. Che cosa distingue una voce di audit log da un'altra è il campo protoPayload. Nell'audit log il campo protoPayload delle voce di log contiene Oggetto AuditLog in cui è archiviata l'audit logging e i dati di Google Cloud.

In breve, ogni voce dell'audit log è caratterizzata dalle seguenti informazioni:

  • Il progetto, la cartella o l'organizzazione proprietaria della voce di log.
  • La risorsa a cui si applica la voce di log. Queste informazioni includono di un tipo di risorsa Elenco delle risorse monitorate e e i valori aggiuntivi che indicano un'istanza specifica. Ad esempio, puoi visualizza le voci degli audit log da una singola VM di Compute Engine da tutte le istanze VM.
  • Un timestamp.
  • Un servizio: i servizi sono singoli prodotti Google Cloud, come Compute Engine, Cloud SQL o Pub/Sub. Ogni servizio è identificato dal nome: Compute Engine è compute.googleapis.com, Cloud SQL è cloudsql.googleapis.com e così via. Queste informazioni è elencato nel campo protoPayload.serviceName della voce dell'audit log.

    I tipi di risorsa appartengono a un singolo servizio, ma un servizio può avere diversi tipi di risorse. Per un elenco di servizi e risorse, vai a Mappatura dei servizi alle risorse.

  • Un payload, di tipo protoPayload. Il payload di ogni voce di audit log è un oggetto di tipo AuditLog, che definisce un insieme di campi specifici per Cloud Audit Logs, serviceName e authenticationInfo. Ha anche un campo facoltativo, metadata, che i servizi Google Cloud utilizzano per elencare le specifiche del servizio le informazioni nella voce dell'audit log. Alcuni servizi Google Cloud utilizzano ancora precedente campo serviceData per elencare informazioni specifiche del servizio. Per una lista di servizi che usano il campo serviceData, consulta Dati di controllo specifici del servizio.

  • Un nome di log: le voci di audit log appartengono ai log all'interno di progetti, cartelle le tue organizzazioni. I nomi dei log sono elencati di seguito:

   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

All'interno di un progetto, di una cartella o di un'organizzazione, questi nomi di log sono in genere le abbreviazioni activity, data_access, system_event e policy.

Esempio di voce di log di controllo

Questa sezione utilizza una voce di audit log di esempio per spiegare come trovare importanti nelle voci degli audit log.

L'esempio seguente è una voce di audit log dell'attività di amministrazione scritta da App Engine per registrare una modifica a un criterio IAM (Identity and Access Management) con PROJECT_ID my-gcp-project-id. Per brevità, alcune parti della voce di log sono omesse e alcuni campi in evidenza:

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "appengine.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.appengine.legacy.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "gae_app",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2019-05-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

Ecco la query utilizzata per selezionare l'esempio di voce di audit log riportato sopra. Può essere utilizzato in Esplora log, nell'API Logging o in Google Cloud CLI. L'identificatore del progetto si trova nel nome del log e la query è veloce perché Il campo logName è indicizzato:

    resource.type = "gae_app"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

Se cerchi audit log da una singola istanza di un tipo di risorsa, ad esempio gce_instance, aggiungi un qualificatore di istanza:

    resource.type = "gce_instance"
    resource.instance_id = "INSTANCE_ID"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

Interpretazione della voce di audit log di esempio

Nell'esempio di voce del log di controllo riportato sopra, protoPayload, insertId, I campi resource, timestamp, severity e logName mostrati fanno parte di LogEntry. Il valore del campo protoPayload è un AuditLog. Incapsula i dati dell'audit logging.

Osservando l'esempio di voce di log di controllo riportato sopra, potresti avere alcune domande:

  • Si tratta di una voce di audit log? Si può dire in due modi:

    • Il campo protoPayload.@type è type.googleapis.com/google.cloud.audit.AuditLog.

    • Il campo logName include il dominio cloudaudit.googleapis.com.

  • Quale servizio ha scritto il log di controllo? Il log è stato scritto generati da App Engine. Queste informazioni sono elencate nel campo protoPayload.serviceName della voce di audit log.

  • Quale operazione viene controllata? SetIamPolicy, come specificato nel campo protoPayload.methodName, è in fase di controllo. Ulteriori informazioni sull'operazione controllata si trova nell'oggetto AuditData in protoPayload.serviceData.

  • Quale risorsa viene controllata? un'applicazione in esecuzione App Engine, associato a un progetto Google Cloud my-gcp-project-id è in fase di controllo. Puoi determinarlo resource, che specifica il tipo di risorsa gae_app e l'identificatore progetto my-gcp-project-id. In questo esempio, troveresti i dettagli sul tipo di risorsa dei tipi di risorse monitorate.

Per ulteriori informazioni, consulta il tipo di LogEntry, AuditLog type e il tipo AuditDataIAM.

Audit log per operazioni a lunga esecuzione

Le API che sono operazioni a lunga esecuzione emettono due gli audit log; uno quando viene chiamata l'API e viene avviata l'operazione. una al completamento dell'operazione.

In questo caso, l'oggetto LogEntry contiene un campo operation. Voci di log per la stessa operazione hanno lo stesso valore per LogEntry.operation.id e LogEntry.operation.producer. Il primo log scritto contiene LogEntry.operation.first=true, e il log di completamento ha LogEntry.operation.last=true.

Nei casi in cui l'operazione viene completata immediatamente, sarà presente un solo log contenente sia LogEntry.operation.first=true che LogEntry.operation.last=true.

Queste API implementano l'operazione completamente gestito di Google Cloud. Di solito, questo servizio emette audit log quando viene chiamato. A seconda di quali API vengono chiamate, protoPayload.methodName corrisponde a uno dei seguenti:

  • google.longrunning.Operations.ListOperations
  • google.longrunning.Operations.GetOperation
  • google.longrunning.Operations.CancelOperation
  • google.longrunning.Operations.WaitOperation
  • google.longrunning.Operations.DeleteOperation

LogEntry.operation non è specificato in questo caso, poiché restituisce questa API metadati su operazioni a lunga esecuzione, ma non è un'operazione a lunga esecuzione di per sé.

Per maggiori dettagli, consulta Servizi Google con log di controllo su quali API vengono controllate, dato che può variare in base al servizio.

Log di controllo per le API in modalità flusso

Analogamente alle operazioni a lunga esecuzione, le API di flussi di dati emettono due audit log; uno quando l'API viene chiamata per la prima volta e l'altro quando la connessione streaming è terminata.

In questo caso, l'oggetto LogEntry contiene un campo operation e voci di log per la stessa operazione hanno lo stesso valore per LogEntry.operation.id e LogEntry.operation.producer. Il primo log scritto contiene LogEntry.operation.first=true, e il log di completamento avrà LogEntry.operation.last=true.

Questa API può anche emettere log di continuazione né LogEntry.operation.firstLogEntry.operation.last impostato per indicare che lo stream rimane aperto.

Dati di audit specifici del servizio

Alcuni servizi estendono le informazioni archiviate AuditLog inserendo dati supplementari struttura nel campo serviceData dell'audit log. Nella tabella seguente sono elencate le servizi che utilizzano il campo serviceData e fornisce un link al loro AuditData di testo.

Servizio Tipo di dati dei servizi
App Engine type.googleapis.com/google.appengine.v1.AuditData
App Engine (legacy) type.googleapis.com/google.appengine.legacy.AuditData
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
IAM type.googleapis.com/google.iam.v1.logging.AuditData

Visualizzazione degli audit log

Puoi eseguire query per tutti gli audit log oppure per i log in base nome del log di controllo. Il nome dell'audit log include identificatore di risorsa del progetto, della cartella, dell'account di fatturazione o organizzazione per la quale vuoi visualizzare le informazioni di audit logging. Le tue query possono specificare campi LogEntry indicizzati e, se utilizzi alla pagina Analisi dei log, che supporta le query SQL, puoi visualizzare i risultati della query sotto forma di grafico.

Per ulteriori informazioni sull'esecuzione di query sui log, consulta le pagine seguenti:

Puoi visualizzare gli audit log in Cloud Logging utilizzando Console Google Cloud, Google Cloud CLI o l'API Logging.

Console

Nella console Google Cloud, puoi utilizzare Esplora log per recuperare le voci di audit log per il progetto, la cartella o organizzazione:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

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

  3. Per visualizzare tutti gli audit log, inserisci una delle seguenti query nel campo dell'editor query e quindi fai clic su Esegui query:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. Per visualizzare gli audit log per una risorsa e un tipo di audit log specifici, Nel riquadro Query Builder, procedi nel seguente modo:

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

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

      • Per gli audit log per le attività di amministrazione, seleziona attività.
      • Per gli audit log di accesso ai dati, seleziona data_access.
      • Per gli audit log degli eventi di sistema, seleziona system_event.
      • Per gli audit log relativi ai criteri negati, seleziona policy.
    • Fai clic su Esegui query.

    Se non vedi queste opzioni, significa che non sono presenti audit log di del tipo disponibile nel progetto, nella cartella o dell'organizzazione.

    Se riscontri problemi quando cerchi di visualizzare i log nel Esplora log, controlla risoluzione dei problemi informazioni.

    Per ulteriori informazioni sull'esecuzione di query utilizzando Esplora log, consulta Crea query in Esplora log. Per informazioni sul riepilogo delle voci di log in Esplora log con Gemini, vedi Riepilogare le voci di log con l'assistenza di Gemini.

gcloud

Google Cloud CLI fornisce un'interfaccia a riga di comando l'API Logging. Fornisci un identificatore di risorsa valido in ciascun log names. Ad esempio, se la query include un valore PROJECT_ID, allora il valore l'identificatore del progetto che fornisci deve fare riferimento all'elemento attualmente selezionato progetto Google Cloud.

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

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

Per leggere le voci di audit log a livello di cartella, esegui questo comando:

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

Per leggere le voci di audit log a livello di organizzazione, esegui questo comando :

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

Per leggere le voci di audit log a livello di account di fatturazione Cloud, 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 tuo comando per leggere i log risalenti a più di un giorno fa.

Per ulteriori informazioni sull'utilizzo di gcloud CLI, consulta gcloud logging read.

API

Quando crei le query, fornisci un identificatore di risorsa valido in ogni i nomi dei log. Ad esempio, se la query include un valore PROJECT_ID, l'identificatore del progetto che fornisci deve fare riferimento progetto Google Cloud.

Ad esempio, per utilizzare l'API Logging per visualizzare a livello di progetto di audit log, segui questi passaggi:

  1. Vai alla sezione Prova questa API della documentazione per entries.list .

  2. Inserisci quanto segue nella parte del corpo della richiesta della sezione Prova questa API. Fai clic su questo modulo precompilato. compila automaticamente il corpo della richiesta, ma devi fornire un indirizzo PROJECT_ID in ciascuno dei nomi dei log.

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