Questo documento descrive come creare e gestire visualizzazioni dei log sul tuo nei bucket Cloud Logging mediante gcloud CLI. Le visualizzazioni dei log ti offrono un controllo avanzato e granulare su chi ha accesso ai log all'interno dei bucket di log.
Per informazioni generali sul modello di archiviazione di Logging, consulta Panoramica su routing e archiviazione.
Informazioni sulle visualizzazioni log
Le visualizzazioni log consentono di concedere a un utente l'accesso solo a un sottoinsieme dei log archiviati in un di log del bucket. Ad esempio, prendi in considerazione uno scenario in cui memorizzi i log della tua organizzazione in un progetto centrale. Potresti creare una visualizzazione log per ogni progetto che fornisce log al bucket di log. Puoi quindi grant each user access to one or more log views, and thereby restrict which logs gli utenti possono visualizzare.
Puoi creare un massimo di 30 visualizzazioni di log per bucket di log.
Controllare l'accesso a una visualizzazione dei log
Cloud Logging utilizza i criteri IAM per controllare chi può accedere alle visualizzazioni di log. I criteri IAM possono esistere a livello di risorsa, progetto a livello di cartella e di organizzazione. Per Cloud Logging, puoi creare un criterio IAM per ogni visualizzazione dei 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 alle visualizzazioni e ai log in qualsiasi bucket di log del progetto.
Per concedere a un entità di accesso solo a una visualizzazione dei log specifica, svolgi una delle seguenti operazioni:
Crea un criterio IAM per la visualizzazione del log, quindi aggiungi un Associazione IAM a quel criterio che concede l'entità alla visualizzazione del log.
Questo approccio è consigliato se crei un numero elevato di visualizzazioni di log.
Concedi all'entità il ruolo IAM
roles/logging.viewAccessor
sul progetto contenente la visualizzazione del log, ma alleghiamo un Condizione IAM a limita la concessione alla vista log specifica. Se ometti il parametro , concedi l'accesso dell'entità a tutte le visualizzazioni di log. Il limite è 20. le associazioni di ruoli nel file dei criteri per un progetto Google Cloud che includono lo stesso ruolo e la stessa entità, ma espressioni di condizione diverse.
Per ulteriori informazioni, consulta la sezione di questo documento intitolata Concedere l'accesso a una visualizzazione dei log.
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 di log del bucket.
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 vengono
visibile 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 Funzione
source
. La funzionesource
restituisce le voci di log di una determinata risorsa nella gerarchia delle organizzazioni, delle cartelle e dei progetti Google Cloud.Un ID log che utilizza Funzione
log_id
. La funzionelog_id
restituisce le voci di log corrispondenti al valoreLOG_ID
specificato dalogName
.Un tipo di risorsa valido che utilizza
resource.type=
FIELD_NAME a confronto.
Ad esempio, il seguente filtro acquisisce il log stdout
di Compute Engine
voci di 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: Confronto tra prodotti.
Prima di iniziare
Prima di creare o aggiornare una visualizzazione del log, completa i seguenti passaggi:
Se non l'hai ancora fatto, nel progetto Google Cloud appropriato, crea un bucket di logging per cui vuoi configurare una visualizzazione dei log personalizzata.
-
Per ottenere le autorizzazioni necessarie per creare e gestire le visualizzazioni log e per concedere l'accesso alle visualizzazioni log, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Writer configurazione log (
roles/logging.configWriter
) -
Per aggiungere un'associazione dei ruoli a un progetto:
Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin
) -
Per aggiungere un'associazione dei ruoli a una visualizzazione del log:
Amministratore Logging (
roles/logging.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
-
Writer configurazione log (
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Stabilisci quali log vuoi includere nella vista. Utilizza queste informazioni per specificare il filtro della visualizzazione del log.
Stabilisci chi deve avere accesso alla visualizzazione del log e se per aggiungere associazioni ai criteri IAM della vista log oppure a livello di progetto Google Cloud. Per ulteriori informazioni, consulta Controllare l'accesso a una visualizzazione del log.
Creare una visualizzazione dei log
Per creare una visualizzazione dei 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 del log.
- BUCKET_NAME: il nome del bucket di log.
- LOCATION: la posizione 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
descrizione
"Compute logs"
.
Esegui la
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
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, puoi adottare due approcci:
Puoi utilizzare il file dei criteri IAM della visualizzazione del log.
Puoi usare il file dei criteri IAM al progetto Google Cloud che archivia il bucket di log, insieme a Condizione IAM.
Quando crei un numero elevato visualizzazioni log, ti consigliamo di controllare l'accesso utilizzando File dei criteri IAM della vista log.
Visualizzazione log: aggiungere associazioni di ruoli
Questa sezione descrive come utilizzare il file del criterio IAM per una visualizzazione log per controllare chi ha accesso alle voci del log in quella visualizzazione. Quando utilizzi questo approccio, aggiungi un'associazione il file dei criteri della visualizzazione log, l'associazione concede all'entità specificata l'accesso a la visualizzazione log.
Questa sezione descrive anche come elencare l'associazione dei ruoli contenuta nel file del criterio IAM per una visualizzazione dei 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 uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
- VIEW_ID: l'identificatore della visualizzazione del log.
- PRINCIPAL: un identificatore per l'entità da utilizzare
concedere il ruolo. Di solito, gli identificatori entità hanno il seguente formato:
PRINCIPAL-TYPE:ID
. Ad esempio:user:my-user@example.com
. Per un elenco completo dei formati chePRINCIPAL
può avere, consulta Identificatori principali. - BUCKET_NAME: il nome del bucket di log.
- LOCATION: la località del bucket di log.
Esegui la
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, consulta: Comandi Terraform di base. Per ulteriori informazioni, consulta Terraform documentazione di riferimento del fornitore.
Per eseguire il provisioning delle associazioni IAM per una visualizzazione dei 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, vedi 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 dei log
Per elencare le associazioni IAM per una visualizzazione log, completa i seguenti passaggi.
gcloud
Prima di utilizzare i dati dei comandi riportati 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 la
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 valore 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 visualizzazioni dei 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: aggiungi 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. Quando utilizzi questo approccio, per limitare l'accesso di un'entità alle voci di log archiviate in vista log, devi aggiungere una condizione IAM alla concessione.
Aggiungi un'associazione dei ruoli a un progetto
Per aggiungere un'associazione di ruolo al file dei criteri IAM di un progetto Google Cloud, completa i seguenti passaggi.
gcloud
Crea un file JSON o YAML con la condizione.
Ad esempio, potresti creare un file denominato
condition.yaml
con i seguenti contenuti:expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\"" title: "My title" description: "My description"
(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
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à da utilizzare
concedere il ruolo. Di solito, gli identificatori entità hanno il seguente formato:
PRINCIPAL-TYPE:ID
. Ad esempio:user:my-user@example.com
. Per un elenco completo dei formati chePRINCIPAL
può avere, consulta gli identificatori entità.
Esegui la
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, consulta: Comandi Terraform di base. Per ulteriori informazioni, consulta Terraform documentazione di riferimento del fornitore.
Per eseguire il provisioning delle 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, vedi Criterio IAM per i progetti.
Console
Nel progetto in cui hai creato il bucket di log, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.
Fai clic su
Concedi l'accesso.Nel campo Nuove entità, aggiungi l'account email dell'utente.
Nel menu a discesa Seleziona un ruolo, seleziona Funzione di accesso alla visualizzazione dei log.
Questo ruolo fornisce agli utenti l'accesso in lettura a tutte le viste. Limitare l'accesso degli utenti a una vista specifica, aggiungi una condizione basata sul nome della risorsa.
Fai clic su Aggiungi condizione IAM.
Inserisci un Titolo e una Descrizione per la condizione.
Nel menu a discesa Tipo di condizione, seleziona Risorsa > Nome.
Nel menu a discesa Operatore, seleziona è.
Nel campo Valore, inserisci l'ID della visualizzazione dei log, incluso il percorso completo della visualizzazione.
Ad esempio:
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
Fai clic su Salva per aggiungere la condizione.
Fai clic su Salva per impostare le autorizzazioni.
Elenco dell'associazione dei ruoli in un progetto
Per elencare le associazioni di ruolo in un progetto Google Cloud, completa i seguenti passaggi.
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:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.
La pagina IAM elenca tutte le entità, i relativi ruoli IAM e 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,
usa 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 la
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
le date di creazione e dell'ultimo aggiornamento. Se le date di creazione e aggiornamento sono vuote, la visualizzazione del log è
creato quando è stato creato il progetto Google Cloud. Il seguente esempio di output mostra che esistono due ID visualizzazione, _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
Aggiornare una visualizzazione log
Per aggiornare o modificare una visualizzazione del log,
usa 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 del log.
- BUCKET_NAME: il nome del bucket di log.
- LOCATION: la posizione 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
descrizione
"New description for the log view"
.
Esegui la
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
Comando gcloud logging views describe
.
Eliminare una visualizzazione dei log
Quando non hai più bisogno di una visualizzazione log creata, puoi eliminarla. Tuttavia, prima di eliminare una visualizzazione log, ti consigliamo di verificare che non sia richiamata da un'altra risorsa, ad esempio una query salvata.
Non puoi eliminare la visualizzazione del log _Default
nel bucket di log _Default
.
Per eliminare una visualizzazione dei log:
Opzione consigliata: esamina il tuo progetto Google Cloud per assicurarti che la visualizzazione del log non viene fatto riferimento. Prendi in considerazione i seguenti aspetti:
- Le query vengono eseguite dalle pagine Esplora log o Analisi dei log che sono stati salvati o condivisi.
- Dashboard personalizzate.
Usa 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 del log.
- BUCKET_NAME: il nome del bucket di log.
- LOCATION: la località del bucket di log.
Esegui la
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, di seguito viene mostrata la risposta all'eliminazione di un visualizzazione log denominata
tester
:Deleted [tester].
Descrivi una visualizzazione del log
Per recuperare informazioni dettagliate su una visualizzazione del log,
usa 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 del log.
- BUCKET_NAME: il nome del bucket di log.
- LOCATION: la posizione del bucket di log.
Esegui la
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 dei log. Include anche il filtro, se il campo del filtro non è vuoto. Di seguito è riportato un esempio 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 visualizzazione log, assicurati di avere
Funzione di accesso alla visualizzazione dei log (roles/logging.viewAccessor
)
ruolo per la visualizzazione log:
-
Nella console Google Cloud, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nella barra degli strumenti, fai clic su Perfeziona ambito, poi su Vista di log e infine seleziona le visualizzazioni log.
Per ulteriori informazioni, consulta Esplora log documentazione.
Passaggi successivi
Per informazioni su come controllare l'accesso a campi specifici in una voce di log, consulta Configurare l'accesso a livello di campo.