Configura le viste dei log in un bucket di log

Questo documento descrive come creare e gestire le visualizzazioni dei log nei bucket Cloud Logging utilizzando gcloud CLI. Le viste log offrono un controllo avanzato e granulare su chi può accedere ai log all'interno dei bucket di log.

Per informazioni generali sul modello di archiviazione di Logging, consulta Panoramica del routing e dell'archiviazione.

Informazioni sulle visualizzazioni log

Le viste log consentono di concedere a un utente l'accesso solo a un sottoinsieme di log archiviati in un bucket di log. Prendi in considerazione uno scenario in cui archivi i log dell'organizzazione in un progetto centrale. Puoi creare una visualizzazione log per ogni progetto che fornisce i log al bucket di log. Puoi quindi concedere a ciascun utente l'accesso a una o più visualizzazioni di log e limitare così i log che questi ultimi possono visualizzare.

Cloud Logging crea automaticamente una vista _AllLogs per ogni bucket di log e una vista _Default per il bucket di log _Default:

  • Visualizzazione _AllLogs: puoi visualizzare tutti i log nel bucket di log.
  • Visualizzazione _Default: puoi visualizzare tutti gli audit log non di accesso ai dati nel bucket di log.

Non puoi modificare le viste create automaticamente da Cloud Logging. Tuttavia, puoi eliminare la vista _AllLogs.

Puoi creare un massimo di 30 visualizzazioni di log per bucket di log.

Ogni visualizzazione log contiene un filtro che limita le voci di log visibili nella visualizzazione. I filtri possono contenere operatori logici AND e NOT, ma non possono includere operatori OR logici. I filtri possono confrontare qualsiasi valore tra i seguenti:

  • Un'origine dati che utilizza la funzione source. La funzione source restituisce le voci di log di una determinata risorsa nella gerarchia di organizzazioni, cartelle e progetti Google Cloud.

  • Un ID log che utilizza la funzione log_id. La funzione log_id restituisce le voci di log corrispondenti all'argomento LOG_ID specificato dal campo logName.

  • Un tipo di risorsa valido che utilizza il confronto tra resource.type= FIELD_NAME.

Ad esempio, il seguente filtro acquisisce le voci di log stdout di Compute Engine da un progetto Google Cloud denominato myproject:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

Per maggiori dettagli sulla sintassi di filtro, consulta Confronti.

Prima di iniziare

Prima di creare o aggiornare una visualizzazione log, segui questi passaggi:

  1. Se non lo hai già fatto, crea un bucket di Logging nel progetto Google Cloud appropriato per il quale configurare una visualizzazione log personalizzata.

  2. Per ottenere le autorizzazioni necessarie per creare, visualizzare, aggiornare ed eliminare le visualizzazioni dei log, chiedi all'amministratore di concederti il ruolo IAM Writer configurazione log (roles/logging.configWriter) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  3. Installa Google Cloud CLI.

  4. Determina quali log includere nella visualizzazione. Puoi utilizzare queste informazioni per specificare il filtro della visualizzazione log.

  5. Stabilisci chi deve avere accesso alla visualizzazione log. Le entità con il ruolo roles/logging.viewAccessor possono visualizzare i log in qualsiasi visualizzazione dei log. Tuttavia, Cloud Logging supporta le condizioni IAM. Le condizioni consentono di concedere a un'entità l'accesso a una visualizzazione del log specifica. Per ulteriori informazioni, consulta Concedere l'accesso a una visualizzazione log.

Creare una visualizzazione log

Per creare una visualizzazione log, utilizza il comando gcloud logging views update. Puoi creare un massimo di 30 visualizzazioni di log per bucket di log.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.
  • FILTER: un filtro che definisce la visualizzazione log. Se è vuota, la visualizzazione log include tutti i log. Ad esempio, per filtrare in base ai log delle istanze VM di Compute Engine, inserisci "resource.type=gce_instance".
  • DESCRIPTION: una descrizione della visualizzazione log. Ad esempio, puoi inserire quanto segue per la descrizione "Compute logs".

Esegui il comando gcloud logging views create:

Linux, macOS o Cloud Shell

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Questo comando non fornisce una risposta. Per confermare le modifiche, puoi eseguire il comando gcloud logging views list.

Elenco delle visualizzazioni di log in un bucket di log

Per elencare le visualizzazioni di log create per un bucket di log, utilizza il comando gcloud logging views list.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.

Esegui il comando gcloud logging views list:

Linux, macOS o Cloud Shell

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

I dati della risposta sono un elenco di visualizzazioni di log. Per ogni visualizzazione del log, il filtro viene mostrato insieme alle date di creazione e dell'ultimo aggiornamento. Se le date di creazione e aggiornamento sono vuote, la visualizzazione log è stata creata al momento della creazione del progetto Google Cloud. Il seguente output di esempio mostra che ci sono due ID vista, _AllLogs e compute, nel bucket di log su cui è stata eseguita la query:

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Concedi l'accesso a una visualizzazione log

Le entità con il ruolo roles/logging.viewAccessor in un progetto Google Cloud possono visualizzare i log in qualsiasi visualizzazione dei log. Tuttavia, Cloud Logging supporta le condizioni IAM. Le condizioni consentono di concedere a un'entità l'accesso a una visualizzazione del log specifica.

Le condizioni IAM sono specificate nell'associazione del ruolo per un progetto Google Cloud. Esiste un limite di 20 associazioni di ruoli in un criterio di autorizzazione che includono lo stesso ruolo e la stessa entità, ma espressioni di condizione diverse.

Per aggiungere utenti a una vista per consentire loro di accedere ai log, completa i passaggi seguenti.

gcloud

  1. Ottieni il criterio IAM del progetto e scrivilo in un file locale in formato JSON. Prima di eseguire il comando seguente, sostituisci PROJECT_ID con l'ID del progetto che contiene il bucket di log:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. Modifica il file JSON che hai creato e aggiungi una condizione IAM che consenta all'utente di leggere dal bucket di log che hai creato.

    Ad esempio, l'esempio seguente specifica un'associazione che concede il ruolo "roles/logging.viewAccessor" ai membri specificati, ma solo per una singola visualizzazione del log:

    {
      "bindings": [
        {
          "members": [
            "user:username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
              "expression":
                "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. Aggiorna il criterio IAM:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

Console

Nel progetto in cui hai creato il bucket di log:

  1. Nel pannello di navigazione della console Google Cloud, seleziona IAM:

    Vai a IAM

  2. Fai clic su Concedi l'accesso.

  3. Nel campo Nuove entità, aggiungi l'account email dell'utente.

  4. Nel menu a discesa Seleziona un ruolo, scegli Funzione di accesso per la visualizzazione dei log.

    Questo ruolo fornisce agli utenti l'accesso in lettura a tutte le viste. Per limitare l'accesso degli utenti a una vista specifica, aggiungi una condizione basata sul nome della risorsa.

    1. Fai clic su Aggiungi condizione IAM.

    2. Inserisci un Titolo e una Descrizione per la condizione.

    3. Nel menu a discesa Tipo di condizione, seleziona Risorsa > Nome.

    4. Nel menu a discesa Operatore, seleziona è.

    5. Nel campo Valore, inserisci l'ID della visualizzazione log, incluso il percorso completo della vista.

      Ad esempio:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. Fai clic su Salva per aggiungere la condizione.

  5. Fai clic su Salva per impostare le autorizzazioni.

Aggiorna una visualizzazione log

Per aggiornare o modificare una visualizzazione log, utilizza il comando gcloud logging views update. Se non conosci l'ID visualizzazione, consulta Visualizzazioni log elenco.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.
  • FILTER: un filtro che definisce la visualizzazione log. Se è vuota, la visualizzazione log include tutti i log. Ad esempio, per filtrare in base ai log delle istanze VM di Compute Engine, inserisci "resource.type=gce_instance".
  • DESCRIPTION: una descrizione della visualizzazione log. Ad esempio, puoi inserire quanto segue per la descrizione "New description for the log view".

Esegui il comando gcloud logging views update:

Linux, macOS o Cloud Shell

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Questo comando non fornisce una risposta. Per confermare le modifiche, puoi eseguire il comando gcloud logging views describe.

Eliminare una visualizzazione log

Per eliminare una visualizzazione log, utilizza il comando gcloud logging views delete. Se non conosci l'ID visualizzazione, consulta Visualizzazioni log elenco.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.

Esegui il comando gcloud logging views delete:

Linux, macOS o Cloud Shell

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

La risposta conferma l'eliminazione. Ad esempio, quanto segue mostra la risposta all'eliminazione di una visualizzazione di log denominata tester:

Deleted [tester].

Descrivi una visualizzazione log

Per recuperare informazioni dettagliate su una visualizzazione di log, utilizza il comando gcloud logging views describe. Se non conosci l'ID visualizzazione, consulta Visualizzazioni log elenco.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.

Esegui il comando gcloud logging views describe:

Linux, macOS o Cloud Shell

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

La risposta include sempre la descrizione e il nome completo della visualizzazione log. Include anche il filtro quando il campo del filtro non è vuoto. Ecco una risposta di esempio:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Visualizzare i log associati a una visualizzazione log

Per visualizzare i log in una visualizzazione log, assicurati di disporre del ruolo Accessotore visualizzazione log (roles/logging.viewAccessor) per la visualizzazione log:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Esplora log:

    Vai a Esplora log

  2. Fai clic su Perfeziona ambito per visualizzare il riquadro Perfeziona ambito. Da qui, puoi selezionare il bucket di log e la visualizzazione log da utilizzare per visualizzare i log.

Il riquadro Perfeziona ambito

Per ulteriori informazioni, consulta la documentazione di Esplora log.

Passaggi successivi

Configurare l'accesso a livello di campo.