Taggare tabelle, visualizzazioni e set di dati

Questo documento descrive come utilizzare i tag per applicare in modo condizionale i criteri di Identity and Access Management (IAM) alle tabelle, alle viste e ai set di dati BigQuery.

Un tag è una coppia chiave-valore che puoi collegare direttamente a una tabella, una vista o un set di dati oppure una coppia chiave-valore che una tabella, una vista o un set di dati può ereditare da altre risorse Google Cloud. Puoi applicare i criteri in modo condizionale in base al fatto che una risorsa abbia un tag specifico. Ad esempio, potresti concedere condizionatamente il ruolo Visualizzatore dati BigQuery a un principale su qualsiasi set di dati con il tag environment:dev.

Per saperne di più sull'utilizzo dei tag nella gerarchia delle risorse Google Cloud, consulta la panoramica dei tag.

Per concedere contemporaneamente le autorizzazioni a molte risorse BigQuery correlate, incluse quelle che non esistono ancora, ti consigliamo di utilizzare le condizioni IAM.

Prima di iniziare

Devi concedere i ruoli IAM che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento. Devi anche creare chiavi e valori tag da associare alle risorse.

Autorizzazioni obbligatorie

Per utilizzare i tag in BigQuery, devi disporre delle seguenti autorizzazioni:

  • Per associare un tag a una tabella o una vista, devi disporre dell'autorizzazione IAM bigquery.tables.createTagBinding per la tabella o la vista e dell'autorizzazione resourcemanager.tagValueBindings.create a livello di progetto per il valore del tag da associare.
  • Per associare un tag a un set di dati, devi disporre dell'autorizzazione IAM bigquery.datasets.createTagBinding per il set di dati e dell'autorizzazione resourcemanager.tagValueBindings.create a livello di progetto per il valore del tag da associare.
  • Per rimuovere un tag da una tabella o una vista, devi disporre dell'autorizzazione IAM bigquery.tables.deleteTagBinding per la tabella o la vista e dell'autorizzazione resourcemanager.tagValueBindings.delete a livello di progetto per il valore del tag che vuoi eliminare.
  • Per rimuovere un tag da un set di dati, devi disporre dell'autorizzazione IAM bigquery.datasets.deleteTagBinding per il set di dati e dell'autorizzazione resourcemanager.tagValueBindings.delete a livello di progetto per il valore del tag da eliminare.
  • Per elencare le chiavi dei tag associate a un progetto o un'organizzazione principale nel riquadro Modifica dettagli per una tabella, una visualizzazione o un set di dati, devi disporre dell'autorizzazione resourcemanager.tagKeys.list a livello di chiave principale del tag e dell'autorizzazione resourcemanager.tagKeys.get per ogni chiave del tag.
  • Per elencare i valori dei tag delle chiavi associate a un progetto o a un'organizzazione principale nel riquadro Modifica dettagli per una tabella, una vista o un set di dati, devi disporre dell'autorizzazione resourcemanager.tagValues.list a livello di valore del tag principale e dell'autorizzazione resourcemanager.tagValues.get per ogni valore del tag.

Se utilizzi i tag con l'API Cloud Resource Manager o gcloud, hai bisogno anche delle seguenti autorizzazioni:

  • Per elencare i tag associati a una tabella o una visualizzazione con l'API Cloud Resource Manager o gcloud CLI, devi disporre dell'autorizzazione IAM bigquery.tables.listTagBindings.
  • Per elencare i tag efficaci per una tabella o una vista, devi disporre dell'autorizzazione IAM bigquery.tables.listEffectiveTags.
  • Per elencare i tag associati a un dataset con l'API Cloud Resource Manager o gcloud CLI, è necessaria l'autorizzazione IAM bigquery.datasets.listTagBindings.
  • Per elencare i tag efficaci per un set di dati, devi disporre dell'autorizzazione IAM bigquery.datasets.listEffectiveTags.

Entrambi i seguenti ruoli IAM predefiniti includono tutte le autorizzazioni BigQuery necessarie:

  • BigQuery Data Owner (roles/bigquery.dataOwner)
  • Amministratore BigQuery (roles/bigquery.admin)

Le autorizzazioni di Resource Manager sono incluse nel ruolo Utente tag (roles/resourcemanager.tagUser).

Puoi anche utilizzare i tag per negare l'accesso con i criteri IAM a tabelle, viste e set di dati BigQuery (anteprima). Per ulteriori informazioni, consulta Criteri di rifiuto.

Creare chiavi e valori dei tag

Prima di poter allegare un tag, devi crearlo e configurarne il valore. Per creare chiavi e valori dei tag, consulta Creare un tag e Aggiungere valori dei tag.

Tabelle di tag

Le sezioni seguenti descrivono come allegare i tag a tabelle nuove ed esistenti, elencare i tag allegati a una tabella e scollegare i tag da una tabella.

Attaccare i tag quando crei una nuova tabella

Dopo aver creato un tag, puoi allegarlo a una nuova tabella. Puoi associare solo un valore del tag a una tabella per una determinata chiave del tag. Puoi associare a una tabella un massimo di 50 tag.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.

  3. Nella sezione Informazioni set di dati, fai clic su Crea tabella.

  4. Inserisci le informazioni per la nuova tabella. Per maggiori dettagli, consulta Creare e utilizzare le tabelle.

  5. Nella sezione Tag, seleziona i tag da aggiungere alla nuova tabella.

  6. Fai clic su Crea tabella.

bq

Utilizza il comando bq mk --table con il flag --add_tags:

bq mk --table \
    --schema=SCHEMA \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

Sostituisci quanto segue:

Terraform

Utilizza la risorsa google_bigquery_table.

Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

Il seguente esempio crea una tabella denominata mytable, quindi vi associa i tag compilando il campo resource_tags:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env3"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department3"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "MyDataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days
}

# Create a table
resource "google_bigquery_table" "default" {
  dataset_id          = google_bigquery_dataset.default.dataset_id
  table_id            = "mytable"
  description         = "table description"
  deletion_protection = false # set to "true" in production

  # Attach tags to the table
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o aggiornare corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

API

Chiama il metodo tables.insert con una risorsa tabella definita. Includi i tag nel campo resource_tags.

Allega i tag a una tabella esistente

Dopo aver creato un tag, puoi collegarlo a una tabella esistente. Puoi associare solo un valore del tag a una tabella per una determinata chiave del tag.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.

  3. Nella scheda Dettagli, fai clic su Modifica dettagli.

  4. Nella sezione Tag, seleziona i tag da aggiungere alla tabella.

  5. Fai clic su Salva.

bq

Utilizza il comando bq update con il flag --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

Sostituisci quanto segue:

  • TAG: il tag che stai collegando alla tabella. Più tag sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene la tabella.
  • DATASET_ID: l'ID del set di dati che contiene la tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornando.

gcloud

Per associare un tag a una tabella utilizzando la riga di comando, crea una risorsa di associazione dei tag utilizzando il comando gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • TAGVALUE_NAME: l'ID permanente o il nome nello spazio dei nomi del valore del tag da associare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table
  • LOCATION: la posizione della tua tabella.

Terraform

Aggiungi i tag al campo resource_tags della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table. Per maggiori informazioni, consulta l'esempio di Terraform in Associare i tag quando crei una nuova tabella.

API

Chiama il metodo tables.update con una risorsa tabella definita. Includi i tag nel campo resource_tags.

Elenca i tag associati a una tabella

Puoi elencare i tag collegati direttamente a una tabella. Questa procedura non elenca i tag ereditati dalle risorse principali.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.

    I tag sono visibili nella scheda Dettagli.

bq

Utilizza il comando bq show e cerca la colonna tags. Se nella tabella non sono presenti tag, la colonna tags non viene visualizzata.

bq show \
    PROJECT_ID:DATASET_ID.TABLE_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene la tabella.
  • DATASET_ID: l'ID del set di dati che contiene la tabella.
  • TABLE_ID: l'ID della tabella.

gcloud

Per ottenere un elenco di associazioni di tag associate a una risorsa, utilizza il comando gcloud resource-manager tags bindings list:

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

Sostituisci quanto segue:

  • RESOURCE_ID: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table.

  • LOCATION: la posizione del tuo set di dati.

L'output è simile al seguente:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

Utilizza il comando terraform state show per elencare gli attributi della tabella, incluso il campo resource_tags. Esegui questo comando nella directory in cui è stato eseguito il file di configurazione Terraform della tabella.

terraform state show google_bigquery_table.default

API

Chiama il metodo tables.get con una risorsa tabella definita e cerca il campo resource_tags.

Visualizzazioni

Utilizza la visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS.

Ad esempio, la seguente query mostra tutti i tag associati a tutte le tabelle di un set di dati. Questa query restituisce una tabella con colonne tra cui schema_name (il nome del set di dati), option_name (sempre 'tags'), object_type (sempre ARRAY<STRUCT<STRING, STRING>>) e option_value, che contiene array di oggetti STRUCT che rappresentano i tag associati a ogni set di dati. Per le tabelle senza tag assegnati, la colonna option_value restituisce un array vuoto.

SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS
WHERE option_name='tags'

Sostituisci DATASET_ID con l'ID del set di dati che contiene la tua tabella.

Scollegare i tag da una tabella

Puoi rimuovere un'associazione di tag da una tabella eliminando la relativa associazione. Se devi eliminare un tag, devi prima scollegarlo.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.

  3. Nella scheda Dettagli, fai clic su Modifica dettagli.

  4. Nella sezione Tag, rimuovi i tag che vuoi scollegare dalla tabella.

  5. Fai clic su Salva.

bq

Per rimuovere alcuni tag da una tabella, utilizza il comando bq update con il flag --remove_tags:

bq update \
    --remove_tags=TAG_KEYS \
    PROJECT_ID:DATASET_ID.TABLE_ID

Sostituisci quanto segue:

  • TAG_KEYS: le chiavi dei tag che stai scollando dalla tabella, separate da virgole. Ad esempio, 556741164180/env,myProject/department. Ogni chiave del tag deve avere il nome della chiave con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene la tabella.
  • DATASET_ID: l'ID del set di dati che contiene la tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornando.

Per rimuovere tutti i tag da una tabella, utilizza il comando bq update con il flag --clear_all_tags:

bq update \
    --clear_all_tags \
    PROJECT_ID:DATASET_ID.TABLE_ID

gcloud

Per rimuovere un'associazione di tag da una tabella utilizzando la riga di comando, elimina l'associazione del tag utilizzando il comando gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • TAGVALUE_NAME: l'ID permanente o il nome con spazio dei nomi del valore del tag da eliminare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table.
  • LOCATION: la posizione del tuo set di dati.

Terraform

Rimuovi i tag dal campo resource_tags della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table.

API

Chiama il metodo tables.update con una risorsa tabella definita e rimuovi i tag nel campo resource_tags. Per rimuovere tutti i tag, rimuovi il campo resource_tags.

Taggare i set di dati

Le sezioni riportate di seguito descrivono come associare i tag ai set di dati nuovi ed esistenti, elencare i tag associati a un set di dati e scollegare i tag da un set di dati.

Attaccare i tag quando crei un nuovo set di dati

Dopo aver creato un tag, puoi collegarlo a un nuovo set di dati BigQuery. Puoi associare un solo valore tag a un set di dati per una determinata chiave tag. Puoi associare un massimo di 50 tag a un set di dati.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.

  3. Fai clic su Visualizza azioni > Crea set di dati.

  4. Nel menu Tag, fai clic su Seleziona ambito.

  5. Seleziona l'ambito per i tag.

  6. Seleziona e aggiungi i tag da aggiungere al set di dati.

  7. Fai clic su Crea set di dati.

bq

Utilizza il comando bq mk --dataset con il flag --add_tags:

bq mk --dataset \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

Sostituisci quanto segue:

  • TAG: il tag da associare al nuovo set di dati. Più tag sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto in cui stai creando un set di dati.
  • DATASET_ID: l'ID del nuovo set di dati che stai creando.

Terraform

Utilizza la risorsa google_bigquery_dataset.

Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

L'esempio seguente crea un set di dati denominato my_dataset, quindi vi associa i tag compilando il campo resource_tags:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env2"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department2"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "my_dataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  # Attach tags to the dataset
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o aggiornare corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

API

Chiama il metodo datasets.insert e aggiungi i tuoi tag al campo resource_tags.

Allega i tag a un set di dati esistente

Dopo aver creato un tag, puoi collegarlo a un set di dati esistente. Puoi associare solo un valore del tag a un set di dati per una determinata chiave del tag.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.

  3. Nella sezione Informazioni sul set di dati, fai clic su Modifica dettagli.

  4. Nella sezione Tag, seleziona i tag da aggiungere al set di dati.

  5. Fai clic su Salva.

bq

Utilizza il comando bq update con il flag --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

Sostituisci quanto segue:

  • TAG: il tag che stai associando al set di dati. Più tag sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto in cui si trova il set di dati esistente.
  • DATASET_ID: l'ID del set di dati esistente.

gcloud

Per associare un tag a un set di dati utilizzando la riga di comando, crea una risorsa di associazione dei tag utilizzando il comando gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • TAGVALUE_NAME: l'ID permanente o il nome nello spazio dei nomi del valore del tag da collegare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: la posizione del tuo set di dati.

Terraform

Aggiungi i tag al campo resource_tags del set di dati, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_dataset. Per maggiori informazioni, consulta l'esempio di Terraform in Collegare i tag quando crei un nuovo set di dati.

API

Chiama il metodo datasets.get per ottenere la risorsa del set di dati, incluso il campo resource_tags. Aggiungi i tag al campo resource_tags e passa la risorsa del set di dati aggiornato utilizzando il metodo datasets.update.

Elenca i tag associati a un set di dati

I passaggi riportati di seguito forniscono un elenco di associazioni di tag collegate direttamente a un set di dati. Non restituiscono tag ereditati dalle risorse parent.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.

    I tag vengono visualizzati nella sezione Informazioni sul set di dati.

bq

Per elencare i tag associati a un set di dati, utilizza il comando bq show.

bq show PROJECT_ID:DATASET_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto contenente il set di dati.
  • DATASET_ID: l'ID del set di dati per il quale vuoi elencare i tag.

gcloud

Per ottenere un elenco di associazioni di tag associate a una risorsa, utilizza il comando gcloud resource-manager tags bindings list:

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

Sostituisci quanto segue:

  • RESOURCE_ID: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.

  • LOCATION: la posizione del tuo set di dati.

L'output è simile al seguente:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

Utilizza il comando terraform state show per elencare gli attributi del set di dati, incluso il campo resource_tags. Esegui questo comando nella directory in cui è stato eseguito il file di configurazione Terraform del set di dati.

terraform state show google_bigquery_dataset.default

API

Chiama il metodo datasets.get per ottenere la risorsa del set di dati. La risorsa del set di dati include i tag associati al set di dati nel campo resource_tags.

Visualizzazioni

Utilizza la visualizzazione INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Ad esempio, la seguente query mostra tutti i tag associati a tutti i set di dati in una regione. Questa query restituisce una tabella con colonne tra cui schema_name (i nomi dei set di dati), option_name (sempre 'tags'), object_type (sempre ARRAY<STRUCT<STRING, STRING>>) e option_value, che contiene array di oggetti STRUCT che rappresentano i tag associati a ogni set di dati. Per i set di dati senza tag assegnati, la colonna option_value restituisce un array vuoto.

SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE option_name='tags'

Sostituisci quanto segue:

  • REGION: la regione in cui si trovano i set di dati.

Scollegare i tag da un set di dati

Puoi scollegare un tag da una risorsa eliminando la risorsa di associazione dei tag. Se devi eliminare un tag, devi prima scollegarlo.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.

  3. Nella sezione Informazioni sul set di dati, fai clic su Modifica dettagli.

  4. Nella sezione Tag, fai clic su Elimina elemento accanto al tag da eliminare.

  5. Fai clic su Salva.

bq

Utilizza il comando bq update con il flag --remove_tags:

bq update \
    --remove_tags=REMOVED_TAG \
    PROJECT_ID:DATASET_ID

Sostituisci quanto segue:

  • REMOVED_TAG: il tag che stai rimuovendo dal set di dati. Più tag sono separati da virgole. Accetta solo chiavi senza coppie di valori. Ad esempio, 556741164180/env,myProject/department. Ogni tag deve avere il nome della chiave con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene il tuo set di dati.
  • DATASET_ID: l'ID del set di dati da cui scollegare i tag.

In alternativa, se vuoi rimuovere tutti i tag da un set di dati, utilizza il comando bq update con il flag --clear_all_tags:

bq update \
    --clear_all_tags
    PROJECT_ID:DATASET_ID

gcloud

Per scollegare un tag da un set di dati utilizzando la riga di comando, elimina il vincolo del tag utilizzando il comando gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • TAGVALUE_NAME: l'ID permanente o il nome con spazio dei nomi del valore tag da scollegare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: la posizione del tuo set di dati.

Terraform

Rimuovi i tag dal campo resource_tags del set di dati e poi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_dataset.

API

Chiama il metodo datasets.get per ottenere la risorsa del set di dati, incluso il campo resource_tags. Rimuovi i tag dal campo resource_tags e passa di nuovo la risorsa del set di dati aggiornato utilizzando il metodo datasets.update.

Taggare altre risorse simili a tabelle

Analogamente, puoi taggare viste BigQuery, viste materializzate, cloni e snapshot.

Elimina tag

Non puoi eliminare un tag se è fatto riferimento a una tabella, una visualizzazione o un set di dati. Devi staccare tutte le risorse di associazione dei tag esistenti prima di eliminare la chiave o il valore del tag stesso. Per eliminare le chiavi e i valori dei tag, consulta Eliminare i tag.

Esempio

Supponiamo che tu sia un amministratore di un'organizzazione. Gli analisti di dati sono tutti membri del gruppo analysts@example.com, che dispone del ruolo IAM Visualizzatore dati BigQuery nel progetto userData. Viene assunto un stagista data analyst che, in base alle norme aziendali, deve avere l'autorizzazione solo per visualizzare il set di dati anonymousData nel progetto userData. Puoi controllare il loro accesso utilizzando i tag.

  1. Crea un tag con la chiave employee_type e il valore intern:

    Esempio di creazione della chiave e dei valori del tag.

  2. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM

  3. Individua la riga contenente lo stagista di cui vuoi limitare l'accesso al set di dati e fai clic su Modifica entità in quella riga.

  4. Nel menu Ruolo, seleziona Visualizzatore dati BigQuery.

  5. Fai clic su Aggiungi condizione.

  6. Nei campi Titolo e Descrizione, inserisci i valori che descrivono la condizione del tag IAM che vuoi creare.

  7. Nella scheda Generatore di condizioni, fai clic su Aggiungi.

  8. Nel menu Tipo di condizione, seleziona Risorsa e poi Tag.

  9. Nel menu Operatore, seleziona ha valore.

  10. Nel campo Percorso valore, inserisci il percorso del valore del tag nel formatoORGANIZATION/TAG_KEY/TAG_VALUE. Ad esempio: example.org/employee_type/intern.

    Esempio di una condizione IAM che utilizza i tag.

    Questa condizione del tag IAM limita l'accesso dell'interno ai set di dati con il tag intern.

  11. Per salvare la condizione del tag, fai clic su Salva.

  12. Per salvare le modifiche apportate nel riquadro Modifica autorizzazioni, fai clic su Salva.

  13. Per associare il valore del tag intern al set di dati anonymousData, utilizza la riga di comando per eseguire il comando gcloud resource-manager tags bindings create:

    gcloud resource-manager tags bindings create \
    --tag-value=tagValues/4567890123 \
    --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
    --location=US
    

Limitazioni

  • I tag delle tabelle non sono supportati nelle tabelle BigQuery Omni, nelle tabelle dei set di dati nascosti o nelle tabelle temporanee. Inoltre, le query tra regioni in BigQuery Omni non utilizzano i tag durante i controlli di controllo dell'accesso alle tabelle in altre regioni.

  • Puoi associare un massimo di 50 tag a una tabella o a un set di dati.

  • Tutte le tabelle a cui viene fatto riferimento in una query con caratteri jolly devono avere esattamente lo stesso insieme di chiavi e valori dei tag.

  • Gli utenti con accesso condizionale a un set di dati o a una tabella non possono modificare le autorizzazioni per la risorsa tramite la console Google Cloud. Le modifiche alle autorizzazioni sono supportate solo tramite lo strumento bq e l'API BigQuery.

  • Alcuni servizi esterni a BigQuery non possono verificare correttamente le condizioni dei tag IAM. Se la condizione del tag è positiva, ovvero se a un utente viene assegnato un ruolo in una risorsa solo se questa ha un tag specifico, l'accesso alla risorsa viene negato indipendentemente dai tag ad essa associati. Se la condizione del tag è negativa, ovvero se a un utente viene assegnato un ruolo in una risorsa solo se la risorsa non ha un determinato tag, la condizione del tag non viene controllata.

    Ad esempio, Data Catalog non può verificare le condizioni dei tag IAM sui set di dati BigQuery. Supponiamo che esista un criterio IAM condizionale che assegni a uno stagista il ruolo Visualizzatore dati BigQuery nei set di dati con il tag employee_type=intern. Poiché si tratta di una condizione di tag positiva, il tirocinante non può visualizzare i set di dati cercandoli in Data Catalog anche se questi set di dati hanno il tag employee_type=intern. Se la condizione del tag è stata modificata in una negativa, in modo che lo stagista potesse visualizzare solo i set di dati che non avevano il tag employee_type=intern, il controllo verrebbe saltato del tutto e lo stagista potrebbe visualizzare i set di dati a cui normalmente non poteva accedere in BigQuery.

Passaggi successivi