Configura le visualizzazioni dei log su un bucket di log

Questo documento descrive come creare e gestire le viste dei log nei bucket Cloud Logging utilizzando gcloud CLI. Le visualizzazioni dei 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 visualizzazioni dei log consentono di concedere a un utente l'accesso solo a un sottoinsieme dei log archiviati in un bucket di log. Immagina ad esempio uno scenario in cui archivi i log dell'organizzazione in un progetto centrale. Potresti creare una vista di log per ogni progetto che fornisce log al bucket di log. Puoi quindi concedere a ciascun utente l'accesso a una o più visualizzazioni di log e quindi limitare i log che gli utenti possono visualizzare.

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

Controllare l'accesso a una visualizzazione del log

Cloud Logging usa i criteri IAM per controllare chi può accedere alle viste dei log. I criteri IAM possono esistere a livello di risorsa, progetto, cartella e organizzazione. Per Cloud Logging, puoi creare un criterio IAM per ogni vista di log. Per determinare se un'entità è autorizzata per un'azione, IAM valuta tutti i criteri applicabili, con la prima valutazione a livello di risorsa.

Le entità con il ruolo roles/logging.viewAccessor in un progetto Google Cloud possono accedere a visualizzazioni e log in qualsiasi bucket di log del progetto.

Per limitare un'entità a una visualizzazione di log specifica, esegui una delle seguenti operazioni:

  • Crea un criterio IAM per la visualizzazione del log, quindi aggiungi un'associazione IAM a questo criterio che concede l'accesso dell'entità alla visualizzazione del log.

    Questo approccio è consigliato se crei un numero elevato di visualizzazioni di log.

  • Concedi all'entità il ruolo IAM di roles/logging.viewAccessor, ma collega una condizione IAM alla concessione. È previsto un limite di 20 associazioni di ruoli nel file dei criteri per un progetto Google Cloud che include lo stesso ruolo e la stessa entità, ma espressioni di condizione diverse.

Per ulteriori informazioni, consulta la sezione Concedi l'accesso a una visualizzazione del log di questo documento.

Visualizzazioni dei log create automaticamente

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 relativi all'accesso ai dati nel bucket di log.

Non puoi modificare le viste create automaticamente da Cloud Logging; ma puoi eliminare la vista _AllLogs.

Filtro vista log

Ogni vista di log contiene un filtro che determina quali voci di log sono visibili nella vista. I filtri possono contenere operatori logici AND e NOT, ma non possono includere operatori OR logici. I filtri possono confrontare i valori 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 utilizzando il confronto di 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 dei filtri, consulta Confronti.

Prima di iniziare

Prima di creare o aggiornare una visualizzazione del log, completa i seguenti passaggi:

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

  2. Per ottenere le autorizzazioni necessarie per creare e gestire le visualizzazioni dei log e per concedere l'accesso alle visualizzazioni dei log, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

    Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  3. Installa Google Cloud CLI.

  4. Stabilisci quali log vuoi includere nella vista. Puoi utilizzare queste informazioni per specificare il filtro della vista log.

  5. Stabilisci chi deve avere accesso alla visualizzazione del log e se vuoi aggiungere associazioni al criterio IAM della visualizzazione del log o al progetto Google Cloud. Per ulteriori informazioni, consulta Controllare l'accesso a una visualizzazione del log.

Crea una visualizzazione del log

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

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione del log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.
  • FILTER: un filtro che definisce la visualizzazione del log. Se è vuota, la visualizzazione del 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 del log. Ad esempio, potresti 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.

Successivamente, concedi alle entità l'accesso alla visualizzazione del log.

Concedere l'accesso a una visualizzazione del log

Per limitare un'entità a una visualizzazione di log specifica in un bucket di log definito dall'utente, aggiungi un'associazione di ruolo alla visualizzazione del log o al progetto Google Cloud in cui è archiviato il bucket di log. Quando crei un numero elevato di visualizzazioni di log, ti consigliamo di aggiungere associazioni alla visualizzazione del log.

Visualizzazione log: aggiungere associazioni di ruoli

Questa sezione descrive come aggiungere un'associazione dei ruoli a una visualizzazione del log e come elencare le associazioni collegate a una visualizzazione del log.

Aggiungi un'associazione dei ruoli a una visualizzazione del log

Per aggiornare il file dei criteri IAM di una visualizzazione di log, completa i seguenti passaggi.

gcloud

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione del log.
  • PRINCIPAL: un identificatore per l'entità a cui vuoi concedere il ruolo. In genere gli identificatori entità hanno il seguente formato: PRINCIPAL-TYPE:ID. Ad esempio: user:my-user@example.com. Per un elenco completo dei formati che PRINCIPAL_ID può avere, consulta la sezione Identificatori entità.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.

Esegui il comando gcloud logging views add-iam-policy-binding:

Linux, macOS o Cloud Shell

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Di seguito viene illustrata la risposta quando viene aggiunta una singola associazione:

Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/VIEW_ID].
bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base. Per maggiori informazioni, consulta la documentazione di riferimento del provider Terraform.

Per eseguire il provisioning delle associazioni IAM per una vista di log utilizzando Terraform, sono disponibili diverse risorse:

  • google_logging_log_view_iam_policy
  • google_logging_log_view_iam_binding
  • google_logging_log_view_iam_member

Per ulteriori informazioni, consulta Criterio IAM per LogView di Cloud Logging.

Console

Non supportati. Per aggiungere associazioni a una visualizzazione di log, utilizza Google Cloud CLI.

Elenca le associazioni di ruoli in una visualizzazione del log

Per elencare le associazioni IAM per una visualizzazione di log, completa i seguenti passaggi.

gcloud

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

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

Esegui il comando gcloud logging views get-iam-policy:

Linux, macOS o Cloud Shell

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Quando una visualizzazione del log non contiene associazioni, la risposta contiene solo un campo etag. Di seguito viene illustrata la risposta quando una visualizzazione del log contiene una singola associazione:

bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Per elencare le associazioni IAM per le viste log utilizzando Terraform, utilizza l'origine dati google_logging_log_view_iam_policy.

Console

Non supportati. Per elencare le associazioni per una visualizzazione di log, utilizza Google Cloud CLI.

Progetto Google Cloud: aggiungere associazioni di ruoli

Questa sezione descrive come aggiungere un'associazione dei ruoli a un progetto Google Cloud e come elencare le associazioni collegate a un progetto.

Aggiungi un'associazione dei ruoli a un progetto

Per aggiungere un'associazione dei ruoli al file dei criteri IAM di un progetto Google Cloud, completa i passaggi seguenti.

gcloud

  1. Crea un file JSON o YAML con la tua condizione.

    Ad esempio, potresti creare un file denominato condition.yaml con il seguente contenuto:

    expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
    title: "My title"
    description: "My description"
    
  2. (Facoltativo) Per verificare che il file JSON o YAML sia formattato correttamente, esegui questo comando:

    gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
    
  3. Aggiorna il criterio IAM nel progetto Google Cloud chiamando il metodo gcloud projects add-iam-policy-binding.

    Prima di utilizzare il seguente comando, apporta le seguenti sostituzioni:

    • PROJECT_ID: l'identificatore del progetto.
    • PRINCIPAL: un identificatore per l'entità a cui vuoi concedere il ruolo. In genere gli identificatori entità hanno il seguente formato: PRINCIPAL-TYPE:ID. Ad esempio: user:my-user@example.com. Per un elenco completo dei formati che PRINCIPAL_ID può avere, consulta la sezione Identificatori entità.

    Esegui il comando gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
    

    La risposta al comando precedente include tutte le associazioni di ruoli.

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base. Per maggiori informazioni, consulta la documentazione di riferimento del provider Terraform.

Per eseguire il provisioning di associazioni IAM per i progetti utilizzando Terraform, sono disponibili diverse risorse:

  • google_project_iam_policy
  • google_project_iam_binding
  • google_project_iam_member

Per ulteriori informazioni, consulta Criterio IAM per i progetti.

Console

Nel progetto in cui hai creato il bucket di log, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai a IAM

    Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.

  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 alla 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 del 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.

Elenca l'associazione dei ruoli in un progetto

Per elencare le associazioni di ruoli in un progetto Google Cloud, completa i passaggi riportati di seguito.

gcloud

Prima di utilizzare il seguente comando, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'identificatore del progetto.

Esegui il comando gcloud projects get-iam-policy:

gcloud projects get-iam-policy PROJECT_ID

La risposta al comando precedente include tutte le associazioni di ruoli.

- condition:
    description: My description
    expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
    title: My title
  members:
  - PRINCIPAL
  role: roles/logging.viewAccessor

Terraform

Per elencare le associazioni IAM per i progetti utilizzando Terraform, utilizza l'origine dati google_project_iam_policy.

Console

Nella console Google Cloud, vai alla pagina IAM:

Vai a IAM

Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.

Nella pagina IAM sono elencate tutte le entità, i relativi ruoli IAM e le eventuali condizioni associate a questi ruoli.

Elenca le visualizzazioni di log in un bucket di log

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

Prima di utilizzare qualsiasi dato di comando riportato 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, viene mostrato il filtro insieme alle date di creazione e ultimo aggiornamento. Se le date di creazione e aggiornamento sono vuote, la visualizzazione del log è stata creata al momento della creazione del progetto Google Cloud. L'output di esempio seguente mostra che sono presenti 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

Aggiorna una visualizzazione del log

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

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione del log.
  • BUCKET_NAME: il nome del bucket di log.
  • LOCATION: la località del bucket di log.
  • FILTER: un filtro che definisce la visualizzazione del log. Se è vuota, la visualizzazione del 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 del log. Ad esempio, potresti 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.

Elimina una visualizzazione del log

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

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione del 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 del log

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

Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:

  • VIEW_ID: l'identificatore della visualizzazione del 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 del log. Se il campo del filtro non è vuoto, include anche il filtro. Di seguito è riportato un esempio di risposta:

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 vista log, assicurati di disporre del ruolo Funzione di accesso alla visualizzazione dei log (roles/logging.viewAccessor) per la vista log:

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

    Vai a Esplora log

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

  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.

Riquadro Perfeziona ambito

Per ulteriori informazioni, consulta la documentazione di Esplora log.

Passaggi successivi

Configurare l'accesso a livello di campo.