Taggare tabelle e set di dati

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

Un tag è una coppia chiave-valore che puoi collegare direttamente a una tabella o a un set di dati. o quella che una tabella o un set di dati può Eredita da un altro dell'accesso a specifiche risorse Google Cloud. Puoi applicare i criteri in modo condizionale in base a se una risorsa ha un tag specifico. Ad esempio, puoi decidere in modo condizionale concedi il ruolo Visualizzatore dati BigQuery a un'entità su qualsiasi set di dati con Tag environment:dev.

Per ulteriori informazioni sull'utilizzo dei tag in Google Cloud la gerarchia delle risorse, consulta Panoramica dei tag.

Per concedere le autorizzazioni a molte risorse BigQuery correlate nella e risorse che non esistono ancora, valuta la possibilità di Condizioni IAM.

Prima di iniziare

Devi assegnare ruoli IAM che diano agli utenti le risorse necessarie autorizzazioni per eseguire ogni attività in questo documento. Devi inoltre creare e i valori dei 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, è necessario il valore Autorizzazione IAM bigquery.tables.createTagBinding per e l'autorizzazione resourcemanager.tagValueBindings.create in a livello di progetto sul valore tag che vuoi collegare.
  • Per collegare un tag a un set di dati, è necessario Autorizzazione IAM bigquery.datasets.createTagBinding per e l'autorizzazione resourcemanager.tagValueBindings.create nel set di dati a livello di progetto sul valore tag che vuoi collegare.
  • Per rimuovere un tag da una tabella, è necessario il valore Autorizzazione IAM bigquery.tables.deleteTagBinding per e l'autorizzazione resourcemanager.tagValueBindings.delete in a livello di progetto per il valore del tag che vuoi eliminare.
  • Per rimuovere un tag da un set di dati, è necessario Autorizzazione IAM bigquery.datasets.deleteTagBinding per e l'autorizzazione resourcemanager.tagValueBindings.delete nel set di dati a livello di progetto per il valore del tag che vuoi eliminare.
  • Per elencare le chiavi tag associate a un'organizzazione principale oppure nel riquadro Modifica dettagli di una tabella o di un set di dati, devi avere resourcemanager.tagKeys.list a livello principale della chiave tag e l'autorizzazione resourcemanager.tagKeys.get per ogni chiave tag.
  • per elencare i valori dei tag delle chiavi associate a un'organizzazione principale o progetto nel riquadro Modifica dettagli di una tabella o di un set di dati, devi avere Autorizzazione resourcemanager.tagValues.list a livello principale del valore tag e l'autorizzazione resourcemanager.tagValues.get per ogni valore tag.

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

  • Per visualizzare l'elenco dei tag associati a un con l'API Cloud Resource Manager o gcloud CLI, devi avere l'autorizzazione IAM bigquery.tables.listTagBindings.
  • Per elencare i tag effettivi per una tabella, è necessario il bigquery.tables.listEffectiveTags Autorizzazione IAM.
  • 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 effettivi per un set di dati, è necessario bigquery.datasets.listEffectiveTags Autorizzazione IAM.

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

  • Proprietario dati BigQuery (roles/bigquery.dataOwner)
  • Amministratore BigQuery (roles/bigquery.admin)

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

Puoi utilizzare i tag anche per negare l'accesso in modo condizionale con criteri IAM alle tabelle BigQuery dei set di dati (anteprima). Per ulteriori informazioni, consulta Criteri di negazione.

Creare chiavi e valori dei tag

Prima di poter collegare un tag, devi crearne uno e configurarne il valore. Per creare chiavi e valori di tag, consulta Creazione di un tag e Aggiunta dei valori dei tag.

Tabelle di tag

Le seguenti sezioni descrivono come collegare tag a tabelle nuove ed esistenti. elencare i tag collegati a una tabella e scollegarli da una tabella.

Associa i tag quando crei una nuova tabella

Dopo aver creato un tag, puoi allegarlo a una nuova tabella. Puoi allegare un solo valore tag per tabella per una determinata chiave 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 una del set di dati.

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

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

  5. Nella sezione Tag, seleziona i tag che desideri aggiungere al nuova tabella.

  6. Fai clic su Crea tabella.

bq

Utilizza la 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:

  • SCHEMA: la definizione dello schema in linea.
  • TAG: il tag che stai collegando al nuovo tabella. Più tag sono separati da virgole. Ad esempio: 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome breve della chiave e del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto in cui ti trovi per creare una tabella.
  • DATASET_ID: l'ID del set di dati in cui ti trovi per creare una tabella.
  • TABLE_ID: l'ID della nuova tabella che stai è in fase di creazione.

Terraform

Utilizza la google_bigquery_table risorsa.

Per eseguire l'autenticazione in BigQuery, configura il valore predefinito dell'applicazione Credenziali. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

L'esempio seguente crea una tabella denominata mytable, quindi la collega completando 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 eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti in Terraform di configurazione del deployment.

Prepara la directory

Ogni file di configurazione Terraform deve avere una directory (inoltre chiamato modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. 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 nuovo oggetto main.tf.

    Facoltativamente, copia il codice da GitHub. 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 creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". per creare un nuovo messaggio email.

  3. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.

API

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

Associa 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 che desideri aggiungere al 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 a tabella. Più tag sono separati da virgole. Ad esempio: 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome breve della chiave e del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene della tabella.
  • DATASET_ID: l'ID del set di dati che contiene della tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornamento in corso.

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 nome con spazio dei nomi del valore del tag da associare, come 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: il valore località della tabella.

Terraform

Aggiungi tag al campo resource_tags della tabella, quindi applica il metodo ha aggiornato la configurazione 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 collegati 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 la 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 della tabella.
  • DATASET_ID: l'ID del set di dati che contiene della 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 località del set di dati.

L'output è simile al seguente:

name: tagBindings///bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

Usa il comando terraform state show per elencare gli attributi del incluso il campo resource_tags. Esegui questo comando nella directory dove il file di configurazione Terraform della tabella è vengono eseguiti tutti i test delle unità.

terraform state show google_bigquery_table.default

API

Chiama il Metodo tables.get con una risorsa di 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 STRUCT oggetti che rappresentano i tag associati per 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 tabella.

Scollegare i tag da una tabella

Per rimuovere un'associazione di tag da una tabella, elimina l'associazione di 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 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 metodo 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 scollegando dalla tabella, separati da virgole. Ad esempio: 556741164180/env,myProject/department. Ogni chiave tag deve avere nome chiave con spaziatura dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene la tabella.
  • DATASET_ID: l'ID del set di dati che contiene della tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornando.

Per rimuovere tutti i tag da una tabella, utilizza il metodo 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 nome con spazio dei nomi del valore del tag da eliminare, come 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: il valore località del set di dati.

Terraform

Rimuovi i tag dal campo resource_tags della tabella e poi applicali la configurazione aggiornata utilizzando la risorsa google_bigquery_table.

API

Chiama il Metodo tables.update con una risorsa di 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 seguenti sezioni descrivono come collegare tag a set di dati nuovi ed esistenti, elencare i tag collegati a un set di dati e scollegare i tag da un set di dati.

Collega i tag quando crei un nuovo set di dati

Dopo aver creato un tag, puoi collegarlo a una nuova versione di BigQuery del set di dati. Puoi collegare un solo valore tag a un set di dati per ogni chiave tag specificata. Puoi collegare 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. Clic more_vert Visualizza azioni &gt; 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 che stai collegando al nuovo del set di dati. Più tag sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere nome breve della chiave e del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto in cui ti trovi la creazione di un set di dati.
  • DATASET_ID: l'ID del nuovo set di dati di cui stanno creando.

Terraform

Utilizza la google_bigquery_dataset.

Per eseguire l'autenticazione in BigQuery, configura il valore predefinito dell'applicazione Credenziali. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

L'esempio seguente crea un set di dati denominato my_dataset, quindi lo collega completando 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 a un progetto Google Cloud, completa i passaggi nella le sezioni seguenti.

Prepara Cloud Shell

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

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

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti in Terraform di configurazione del deployment.

Prepara la directory

Ogni file di configurazione Terraform deve avere una directory (inoltre chiamato modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. Il nome file deve contenere i caratteri .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 nuovo oggetto main.tf.

    Facoltativamente, copia il codice da GitHub. 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 creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.

API

Chiama il Metodo datasets.insert e aggiungi i tuoi tag nel campo resource_tags.

Collega 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 che desideri aggiungere al del set di dati.

  5. Fai clic su Salva.

bq

Utilizza la 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 collegando al set di dati. Più tag sono separati da virgole. Ad esempio: 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere nome breve della chiave e del valore con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto in cui è presente in cui si trova il set di dati.
  • 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 nome con spazio dei nomi del valore del tag da associare, come 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: dalla località del set di dati.

Terraform

Aggiungi tag al campo resource_tags del set di dati, quindi applica il metodo ha aggiornato la configurazione 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 seguenti forniscono un elenco di associazioni di tag collegate direttamente a un del set di dati. Non restituiscono tag ereditati da un'unità organizzativa principale. Google Cloud.

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 set di dati.

bq

Per elencare i tag collegati a un set di dati, utilizza Comando bq show.

bq show PROJECT_ID:DATASET_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene del set di dati.
  • DATASET_ID: l'ID del set di dati per il quale voglio elencare i tag.

gcloud

Per ottenere un elenco di associazioni di tag collegate a una risorsa, utilizza il metodo 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 località del set di dati.

L'output è simile al seguente:

name: tagBindings///bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

Usa il comando terraform state show per elencare gli attributi del incluso il campo resource_tags. Esegui questo comando nella directory dove il file di configurazione Terraform del set di dati è stato vengono eseguiti tutti i test delle unità.

terraform state show google_bigquery_dataset.default

API

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

Visualizzazioni

Utilizza la INFORMATION_SCHEMA.SCHEMATA_OPTIONS visualizzazione.

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 del set di dati), option_name (sempre 'tags'), object_type (sempre ARRAY<STRUCT<STRING, STRING>>) e option_value, che contiene array di STRUCT oggetti che rappresentano i tag associati per 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 di 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 a che desideri eliminare.

  5. Fai clic su Salva.

bq

Utilizza la 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 da cui stai rimuovendo il 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 nome chiave con spaziatura dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene il tuo set di dati.
  • DATASET_ID: l'ID del set di dati per scollegare i tag da cui proviene.

In alternativa, se vuoi rimuovere tutti i tag da un set di dati, utilizza la 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 tag l'associazione utilizzando 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 nome con spazio dei nomi del valore del tag da scollegare, come 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, quindi 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 tuoi tag dal campo resource_tags e passano il set di dati aggiornato utilizzando la classe Metodo datasets.update.

Elimina tag

Non puoi eliminare un tag se fa riferimento a una tabella o a un set di dati. Dovresti Scollega tutte le risorse di associazione di tag esistenti prima di eliminare la chiave tag. o il valore stesso. Per eliminare le chiavi e i valori dei tag, consulta: Eliminazione dei tag.

Esempio

Supponiamo che tu sia l'amministratore di un'organizzazione. Il tuo gli analisti di dati sono tutti membri del gruppo [email protected], che presenta Ruolo IAM Visualizzatore dati BigQuery nel progetto userData. Un dato Lo stagista viene assunto e, in base alla politica aziendale, questi ultimi devono solo disponi dell'autorizzazione per visualizzare il set di dati anonymousData nel progetto userData. Puoi controllarne l'accesso utilizzando i tag.

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

    Esempio di creazione di chiavi e valori dei 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. Dal menu Ruolo, seleziona Visualizzatore dati BigQuery.

  5. Fai clic su Aggiungi condizione.

  6. Nei campi Titolo e Descrizione, inserisci i valori che descrivono 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, poi Tag.

  9. Nel menu Operatore, seleziona ha valore.

  10. Nel campo Percorso valore, inserisci il percorso valore tag nel modulo. ORGANIZATION/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 dello stagista a set di dati contenenti 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 tabella non sono supportati nelle tabelle e nelle tabelle BigQuery Omni in set di dati nascosti o 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 collegare 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 set di chiavi e valori dei tag.

  • Alcuni servizi esterni a BigQuery non possono verificare correttamente le condizioni dei tag IAM. Se il tag è positiva, ovvero viene concesso a un utente un ruolo su una risorsa solo se quella risorsa ha un determinato tag, viene negato l'accesso indipendentemente dai tag associati. Se la condizione del tag è negativo, vale a dire che a un utente viene concesso un ruolo su una risorsa solo se la risorsa non ha un determinato tag, la condizione del tag non selezionato.

    Ad esempio, Data Catalog non può verificare il tag IAM dei 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