Utilizzare i tag per gestire l'accesso ai bucket dei log

Questo documento descrive come utilizzare i tag per gestire i bucket di log di Cloud Logging. I tag, creati a livello di organizzazione o progetto, ti consentono di annotare le risorse. Puoi anche concedere in modo condizionale i ruoli Identity and Access Management (IAM) o negare in modo condizionale le autorizzazioni IAM a seconda che una risorsa abbia un tag specifico. Per informazioni sui tag, vedi Panoramica dei tag.

Ad esempio, se utilizzi BigQuery per analizzare i dati di fatturazione Cloud, potresti allegare il tag project:production ai bucket log che archiviano i dati di log delle risorse di produzione e il tag project:development ai bucket log che archiviano i dati di log delle risorse di sviluppo. Quindi, puoi interrogare i dati di fatturazione Cloud con i tag e visualizzare una suddivisione dei costi tra sviluppo e produzione.

I tag possono essere collegati esplicitamente ai bucket di log o ereditati dall'organizzazione, dalle cartelle e dai progetti principali.

Prima di iniziare

Per iniziare a gestire i bucket dei log utilizzando i tag:

  1. Assicurati di aver creato un tag e configurato i relativi valori. Utilizzi Resource Manager per gestire le definizioni dei tag. Per informazioni su come creare e gestire i tag, consulta la pagina Creazione e gestione dei tag.
  2. Per ottenere le autorizzazioni necessarie per gestire i bucket log utilizzando i tag, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto o l'organizzazione:

    Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i bucket log utilizzando i tag. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

    Autorizzazioni obbligatorie

    Per gestire i bucket dei log utilizzando i tag sono necessarie le seguenti autorizzazioni:

    • Aggiungi o rimuovi tag dai bucket di log:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • Visualizza i tag collegati ai bucket di log:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

    Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

  3. Per ottenere l'autorizzazione necessaria per gestire i bucket di log, chiedi all'amministratore di concederti il ruolo IAM Logs Configuration Writer (roles/logging.configWriter) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Questo ruolo predefinito contiene l'autorizzazione logging.buckets.list necessaria per gestire i bucket di log.

    Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Associa tag a un bucket di log

Per collegare un tag a un bucket di log:

Google Cloud console

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

    Vai ad Archiviazione dei log

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

  2. Individua il bucket di log a cui allegare un tag.

  3. Nel bucket di log, fai clic su Altro e poi su Modifica tag.

  4. Nella finestra di dialogo, nella sezione Tag diretti, individua il tag selezionando la risorsa in cui è stato creato. Ad esempio, per utilizzare un tag creato a livello di progetto, scegli Seleziona progetto corrente come ambito.

    Puoi anche cercare manualmente l'ID progetto, organizzazione o tag selezionando l'opzione Inserimento manuale.

  5. Seleziona la coppia chiave-valore appropriata, quindi fai clic su Salva.

  6. Viene visualizzata una finestra di dialogo che conferma le modifiche. Fai clic su Conferma per finalizzare le modifiche.

gcloud

Per collegare un tag a un bucket di log, crea un binding tag eseguendo il comando gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

Nel comando precedente, esegui le seguenti sostituzioni:

  • TAG_VALUE_ID: L'ID permanente o il nome con spazio dei nomi del valore del tag. Ad esempio, tagValues/4567890123. Per ulteriori informazioni sugli identificatori dei tag, vedi Definizioni e identificatori dei tag.

  • BUCKET_NAME: il nome del bucket dei log. Ad esempio, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: La posizione del bucket dei log.

API

Per collegare un tag a un bucket log, utilizza il metodo tagBindings.create.

Visualizzare i tag collegati a un bucket di log

Per visualizzare i tag collegati a un bucket di log:

Google Cloud console

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

    Vai ad Archiviazione dei log

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

  2. Individua il bucket dei log di cui vuoi visualizzare i tag.

    Nella colonna Tag è elencato un tag associato al bucket di log. Per visualizzare tutti i tag associati al bucket di log, fai clic sul pulsante Altro per espandere l'elenco dei tag.

gcloud

Esegui il comando gcloud resource-manager tags bindings list:

gcloud resource-manager tags bindings list \
--parent=BUCKET_NAME \
--location=LOCATION

Nel comando precedente, esegui le seguenti sostituzioni:

  • BUCKET_NAME: il nome del bucket dei log. Ad esempio, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: La posizione del bucket dei log.

(Facoltativo) Per visualizzare i tag ereditati dal bucket dei log, aggiungi il flag --effective. L'aggiunta di questo flag restituisce una risposta simile alla seguente:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Se tutti i tag sono collegati in modo esplicito al bucket log e non vengono ereditati tag, il campo inherited è falso e viene omesso.

API

Per ottenere un elenco di associazioni di tag per un bucket, utilizza il metodo tagBindings.list.

Rimuovere i tag da un bucket di log

Per rimuovere i tag collegati a un bucket dei log, devi eliminare l'associazione tag collegata al bucket dei log. Per eliminare un tag, devi rimuoverlo da tutte le risorse collegate.

Google Cloud console

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

    Vai ad Archiviazione dei log

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

  2. Individua il bucket dei log di cui vuoi rimuovere il tag.

  3. Nel bucket di log, fai clic su Altro e poi su Modifica tag.

  4. Nella finestra di dialogo, tieni il puntatore del mouse sopra il tag da rimuovere e fai clic su Elimina elemento. Fai clic su Salva per salvare le modifiche.

  5. Viene visualizzata una finestra di dialogo che conferma le modifiche. Fai clic su Conferma per finalizzare le modifiche.

gcloud

Esegui il comando gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

Nel comando precedente, esegui le seguenti sostituzioni:

  • TAG_VALUE_ID: l'ID permanente o il nome con spazio dei nomi del valore tag. Ad esempio, tagValues/4567890123. Per ulteriori informazioni sugli identificatori dei tag, vedi Definizioni e identificatori dei tag.

  • BUCKET_NAME: il nome del bucket dei log. Ad esempio, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: La posizione del bucket dei log.

API

Per rimuovere un tag da un bucket log, utilizza il metodo tagBindings.delete.

Limitazioni

  • Non puoi utilizzare le concessioni di ruoli IAM per controllare quali bucket di log un'entità vede quando elenca i bucket di log in un progetto. Google Cloud Un preside vedrà un elenco completo o un elenco vuoto. Tuttavia, puoi utilizzare le concessioni di ruoli IAM con le condizioni IAM per limitare le azioni che un'entità può eseguire su un bucket log. Ad esempio, puoi limitare la possibilità di eliminare un bucket di log specifico per un'entità.

  • Se utilizzi le esportazioni dei dati di fatturazione Cloud con BigQuery, potrebbe essere necessaria fino a un'ora prima che i tag vengano utilizzati nell'esportazione. Se un tag è stato aggiunto o rimosso entro un'ora o se il bucket dei log esiste da meno di un'ora, potrebbe non essere visualizzato nell'esportazione.

Ruoli personalizzati e concessioni di ruoli con condizioni IAM

Se prevedi di utilizzare ruoli IAM personalizzati e di collegare condizioni IAM alle concessioni di ruoli, potresti dover creare più ruoli personalizzati. Alcune autorizzazioni IAM vengono invalidate quando una condizione IAM viene associata a una concessione di ruolo.

Per Cloud Logging, le seguenti autorizzazioni IAM vengono invalidate quando una concessione di ruolo contiene una condizione IAM:

  • logging.buckets.list
  • logging.buckets.create

Pertanto, potresti dover creare un ruolo con le autorizzazioni list e create e un altro ruolo che contenga altre autorizzazioni specifiche per il bucket. Ad esempio, potresti creare un ruolo che contenga le autorizzazioni logging.buckets.delete e logging.buckets.update.

Quando concedi il ruolo che contiene le autorizzazioni list e create, non collegare una condizione IAM alla concessione del ruolo. Quando concedi il ruolo che contiene le autorizzazioni delete e update, puoi aggiungere una condizione IAM che limiti la concessione alle risorse con un tag specifico.

Passaggi successivi