Controlla l'accesso con i tag

Il collegamento di tag alle risorse BigQuery ti consente di gestire in modo condizionale le autorizzazioni per tabelle, viste e set di dati. Con Identity and Access Management (IAM), puoi utilizzare i tag, ovvero coppie chiave-valore, per concedere ruoli o negare l'accesso (anteprima) tramite policy di negazione. Puoi anche collegare tag di governance dei dati (anteprima) alle colonne della tabella e utilizzare le policy dei dati per limitare l'accesso ai dati delle colonne.

I tag possono essere collegati direttamente a una risorsa o ereditati dalle risorse padre nella gerarchia Google Cloud . Per la gestione dei tag a livello di organizzazione, consulta la panoramica dei tag. Per concedere autorizzazioni su più risorse correlate contemporaneamente, inclusi gli asset futuri, valuta l'utilizzo delle condizioni IAM.

Limitazioni

  • I tag delle tabelle non sono supportati nelle tabelle BigQuery Omni, nelle tabelle nei set di dati nascosti o nelle tabelle temporanee. I tag dei set di dati non sono supportati nei set di dati BigQuery Omni. Inoltre, le query tra regioni in BigQuery Omni non utilizzano i tag durante i controlli del controllo degli accessi delle 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 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 a un utente viene concesso un ruolo su una risorsa solo se questa ha un tag specifico, l'accesso alla risorsa viene negato indipendentemente dai tag associati. Se la condizione del tag è negativa, ovvero a un utente viene concesso un ruolo su una risorsa solo se quest'ultima non ha un tag specifico, la condizione del tag non viene controllata.

Ruoli obbligatori

Devi concedere ruoli IAM che diano agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento.

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 per l'aggiunta e la rimozione dei tag sono incluse nel ruolo Tag User (roles/resourcemanager.tagUser).

Autorizzazioni obbligatorie

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

Operazione Interfacce BigQuery (API, CLI, console) e Terraform API Cloud Resource Manager o gcloud
Collega un tag a una tabella o una vista
  • Autorizzazione bigquery.tables.createTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
  • Autorizzazione bigquery.tables.create per collegare un tag durante la creazione di una tabella o di una vista
  • Autorizzazione bigquery.tables.update per collegare un tag durante l'aggiornamento di una tabella o di una vista
  • Autorizzazione bigquery.tables.createTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
Rimuovi un tag da una tabella o una vista
  • Autorizzazione bigquery.tables.deleteTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.delete sul valore tag
  • Autorizzazione bigquery.tables.update per rimuovere un tag durante l'aggiornamento di una tabella o di una vista
  • Autorizzazione bigquery.tables.deleteTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.delete sul valore tag
Collega un tag a un set di dati
  • Autorizzazione bigquery.datasets.createTagBinding sul set di dati
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
  • Autorizzazione bigquery.datasets.create per collegare un tag durante la creazione di un set di dati
  • Autorizzazione bigquery.datasets.update per collegare un tag durante l'aggiornamento di un set di dati
  • Autorizzazione bigquery.datasets.createTagBinding sul set di dati
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
Rimuovi un tag da un set di dati
  • Autorizzazione bigquery.datasets.deleteTagBinding sul set di dati
  • Autorizzazione resourcemanager.tagValueBindings.delete sul valore tag
  • Autorizzazione bigquery.datasets.update per rimuovere un tag durante l'aggiornamento di un set di dati
  • Autorizzazione bigquery.datasets.deleteTagBinding sul set di dati
  • Autorizzazione resourcemanager.tagValueBindings.delete sul valore tag

Per elencare le chiavi e i valori dei tag nella console Google Cloud , devi disporre delle seguenti autorizzazioni:

  • Per elencare le chiavi dei tag associate a un'organizzazione o a un progetto padre, devi disporre dell'autorizzazione resourcemanager.tagKeys.list a livello padre della chiave del tag e dell'autorizzazione resourcemanager.tagKeys.get per ogni chiave del tag. Per visualizzare l'elenco delle chiavi dei tag nella console BigQuery, fai clic sul nome del set di dati, quindi su Modifica dettagli oppure fai clic sul nome della tabella o della vista, quindi su Modifica > Modifica dettagli.

  • Per elencare i valori dei tag delle chiavi associate a un'organizzazione o un progetto principale, devi disporre dell'autorizzazione resourcemanager.tagValues.list a livello di elemento principale del valore del tag e dell'autorizzazione resourcemanager.tagValues.get per ogni valore del tag. Per visualizzare l'elenco dei valori delle chiavi dei tag nella console BigQuery, fai clic sul nome del set di dati e poi su Modifica dettagli oppure fai clic sul nome della tabella o della vista e poi su Modifica > Modifica dettagli.

Per utilizzare i tag nell'API Cloud Resource Manager o in gcloud, devi disporre delle seguenti autorizzazioni:

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

Crea chiavi e valori dei tag

Puoi creare un tag prima di collegarlo a una risorsa BigQuery oppure puoi crearlo manualmente quando crei la risorsa utilizzando la consoleGoogle Cloud .

Per informazioni sulla creazione di chiavi e valori dei tag, consulta Creazione di un tag e Aggiunta di valori tag nella documentazione di Resource Manager.

Set di dati dei tag

Le sezioni seguenti descrivono come collegare i 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 un nuovo set di dati BigQuery. Puoi collegare un solo valore di tag a un set di dati per una determinata chiave di tag. 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 a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

    Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.

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

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

  5. Inserisci le informazioni per il nuovo set di dati. Per maggiori dettagli, consulta Crea set di dati.

  6. Espandi la sezione Tag.

    1. Per applicare un tag esistente:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona ambito e scegli Ambito attuale -> Seleziona l'organizzazione corrente o Seleziona il progetto corrente.

        In alternativa, fai clic su Seleziona ambito per cercare una risorsa o per visualizzare un elenco delle risorse attuali.

      2. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    2. Per inserire manualmente un nuovo tag:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.

      2. Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci PROJECT_ID o ORGANIZATION_ID, quindi fai clic su Salva.

      3. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    3. (Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.

  7. Fai clic su Crea set di dati.

SQL

Utilizza l'istruzione CREATE SCHEMA.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE SCHEMA PROJECT_ID.DATASET_ID
    OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che stai creando.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag sul set di dati, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 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 con spazio dei nomi e il nome breve del valore.
  • PROJECT_ID: l'ID del progetto in cui stai creando un set di dati.
  • DATASET_ID: l'ID del nuovo set di dati.

Terraform

Utilizza la risorsa google_bigquery_dataset.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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 tag al campo resource_tags.

Collega i tag a un set di dati esistente

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

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.

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

  5. Espandi la sezione Tag.

    1. Per applicare un tag esistente:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona ambito e scegli Ambito attuale -> Seleziona l'organizzazione corrente o Seleziona il progetto corrente.

        In alternativa, fai clic su Seleziona ambito per cercare una risorsa o per visualizzare un elenco delle risorse attuali.

      2. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    2. Per inserire manualmente un nuovo tag:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.

      2. Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci PROJECT_ID o ORGANIZATION_ID, quindi fai clic su Salva.

      3. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    3. (Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.

  6. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER SCHEMA SET OPTIONS.

L'esempio seguente sovrascrive tutti i tag di un set di dati esistente.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella che stai taggando.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag della tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

L'esempio seguente utilizza l'operatore += per collegare i tag a un set di dati senza sovrascrivere i tag esistenti. Se un tag esistente ha la stessa chiave, viene sovrascritto.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella che stai taggando.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag della tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 collegando 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 con spazio dei nomi e il nome breve del valore.
  • 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 collegare un tag a un set di dati utilizzando la riga di comando, crea una risorsa di associazione tag utilizzando il comando gcloud resource-manager tags bindings create:

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

Sostituisci quanto segue:

  • TAG_VALUE_NAME: l'ID permanente o il nome con 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 località del 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 saperne di più, consulta l'esempio di Terraform in Collega 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 nuovamente la risorsa del set di dati aggiornata utilizzando il metodo datasets.update.

Elenca i tag collegati a un set di dati

I passaggi seguenti forniscono un elenco di associazioni di tag collegate direttamente a un set di dati. Questi metodi non restituiscono i tag ereditati dalle risorse padre.

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.

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

bq

Per elencare i tag collegati 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 tuo set di dati.
  • DATASET_ID: l'ID del set di dati per cui vuoi elencare i tag.

gcloud

Per ottenere un elenco di associazioni di tag collegate 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 località del 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

Puoi elencare i tag ereditati dai set di dati BigQuery utilizzando gcloud resource-manager tags bindings list. Puoi anche utilizzare l'opzione --filter sull'attributo namespacedTagValue per filtrare i tag in base all'ID progetto, al valore del tag o alla chiave del tag.

gcloud resource-manager tags bindings list \
    --parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
    --effective \
    --filter=namespacedTagValue:TAG_FILTER

Sostituisci quanto segue :

  • PROJECT_ID: l'ID del progetto contenente il set di dati.

  • DATASET_ID: l'ID del set di dati.

  • TAG_FILTER: specifica un valore per filtrare i tag ereditati in base a uno dei seguenti elementi:

    • Filtra i tag per ID progetto. Ad esempio, myproject.

    • Filtra in base ai valori dei tag specificando l'ID permanente o il nome con spazio dei nomi del valore del tag. Ad esempio: tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.

    • Filtra le chiavi tag specificando il nome visualizzato della chiave tag. Ad esempio tagkey.

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 vista 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.

Scollega i tag da un set di dati

Puoi scollegare un tag da una risorsa eliminando la risorsa di associazione dei tag. Se elimini un tag, devi scollegarlo dal set di dati prima di eliminarlo. Per saperne di più, consulta Eliminazione dei tag.

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.

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

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

  6. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER SCHEMA SET OPTIONS.

L'esempio seguente scollega i tag da un set di dati utilizzando l'operatore -=. Per scollegare tutti i tag da un set di dati, puoi specificare tags=NULL o tags=[].

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella da cui stai scollegando i tag.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi del primo tag che vuoi scollegare, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del valore del tag che vuoi scollegare, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag che stai scollegando.
    • TAG_VALUE_2: il nome breve del valore del secondo tag che stai scollegando.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 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 l'associazione del tag utilizzando il comando gcloud resource-manager tags bindings delete:

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

Sostituisci quanto segue:

  • TAG_VALUE_NAME: l'ID permanente o il nome con spazio dei nomi del valore del 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 località del 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 tag dal campo resource_tags e restituisci la risorsa del set di dati aggiornata utilizzando il metodo datasets.update.

Tabelle dei tag

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

Collega i tag quando crei una nuova tabella

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

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi seleziona un set di dati.

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

  5. Inserisci le informazioni per la nuova tabella. Per maggiori dettagli, consulta Crea e utilizza le tabelle.

  6. Espandi la sezione Tag.

    1. Per applicare un tag esistente:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona ambito e scegli Ambito attuale -> Seleziona l'organizzazione corrente o Seleziona il progetto corrente.

        In alternativa, fai clic su Seleziona ambito per cercare una risorsa o per visualizzare un elenco delle risorse attuali.

      2. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    2. Per inserire manualmente un nuovo tag:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.

      2. Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci PROJECT_ID o ORGANIZATION_ID, quindi fai clic su Salva.

      3. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    3. (Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.

  7. Fai clic su Crea tabella.

SQL

Utilizza l'istruzione CREATE TABLE.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati in cui stai creando la tabella.
    • TABLE_ID: il nome della nuova tabella.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag della tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

L'esempio seguente 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"

  # 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 di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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.

Collega i tag a una tabella esistente

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

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.

  4. Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.

  5. Nel riquadro dei dettagli, fai clic su Modifica > Modifica dettagli.

  6. Espandi la sezione Tag.

    1. Per applicare un tag esistente:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona ambito e scegli Ambito attuale -> Seleziona l'organizzazione corrente o Seleziona il progetto corrente.

        In alternativa, fai clic su Seleziona ambito per cercare una risorsa o per visualizzare un elenco delle risorse attuali.

      2. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    2. Per inserire manualmente un nuovo tag:

      1. Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.

      2. Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci PROJECT_ID o ORGANIZATION_ID, quindi fai clic su Salva.

      3. Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.

    3. (Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.

  7. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER TABLE SET OPTIONS.

L'esempio seguente sovrascrive tutti i tag di una tabella esistente.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella che stai taggando.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag della tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

L'esempio seguente utilizza l'operatore += per collegare un tag a una tabella senza sovrascrivere i tag esistenti. Se un tag esistente ha la stessa chiave, viene sovrascritto.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella che stai taggando.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi che vuoi impostare come primo tag della tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve per il valore del tag, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag.
    • TAG_VALUE_2: il nome breve del valore del secondo tag.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 con spazio dei nomi e il nome breve del valore.
  • PROJECT_ID: l'ID del progetto che contiene la tua tabella.
  • DATASET_ID: l'ID del set di dati che contiene la tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornando.

gcloud

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

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

Sostituisci quanto segue:

  • TAG_VALUE_NAME: l'ID permanente o il nome con 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 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/tables/my_table
  • LOCATION: la località della tabella.

Terraform

Aggiungi i tag al campo resource_tags della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table. Per saperne di più, consulta l'esempio di Terraform in Collega 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. Questo processo non elenca i tag ereditati dalle risorse padre.

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.

  4. Fai clic su Panoramica > Tabelle, 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 tua 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 collegate 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/tables/my_table.

  • LOCATION: la località del 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

Puoi elencare i tag ereditati dalle tabelle BigQuery utilizzando gcloud resource-manager tags bindings list. Puoi anche utilizzare l'opzione --filter sull'attributo namespacedTagValue per filtrare i tag in base all'ID progetto, al valore del tag o alla chiave del tag.

gcloud resource-manager tags bindings list \
    --parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID \
    --effective \
    --filter=namespacedTagValue:TAG_FILTER

Sostituisci quanto segue :

  • PROJECT_ID: l'ID del progetto contenente il set di dati.

  • DATASET_ID: l'ID del set di dati.

  • TAG_FILTER: specifica un valore per filtrare i tag ereditati in base a uno dei seguenti elementi:

    • Filtra i tag per ID progetto. Ad esempio, myproject.

    • Filtra in base ai valori dei tag specificando l'ID permanente o il nome con spazio dei nomi del valore del tag. Ad esempio: tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.

    • Filtra le chiavi tag specificando il nome visualizzato della chiave tag. Ad esempio tagkey.

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 vista 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 tabella.

Scollega i tag da una tabella

Puoi rimuovere un'associazione di tag da una tabella eliminando l'associazione dei tag. Se elimini un tag, devi scollegarlo dalla tabella prima di eliminarlo. Per saperne di più, consulta Eliminazione dei tag.

Console

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

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.

  4. Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.

  5. Nel riquadro dei dettagli, fai clic su Modifica > Modifica dettagli.

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

  7. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER TABLE SET OPTIONS.

L'esempio seguente scollega i tag da una tabella utilizzando l'operatore -=. Per scollegare tutti i tag da una tabella, puoi specificare tags=NULL o tags=[].

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • DATASET_ID: l'ID del set di dati che contiene la tabella.
    • TABLE_ID: il nome della tabella da cui stai scollegando i tag.
    • TAG_KEY_1: il nome della chiave con spazio dei nomi del primo tag che vuoi scollegare, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del valore del tag che vuoi scollegare, ad esempio 'prod' o 'sales'.
    • TAG_KEY_2: il nome della chiave con spazio dei nomi per il secondo tag che stai scollegando.
    • TAG_VALUE_2: il nome breve del valore del secondo tag che stai scollegando.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

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 scollegando dalla tabella, separate da virgole. Ad esempio, 556741164180/env,myProject/department. Ogni chiave tag deve avere il nome della chiave con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene la tua 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 di tag utilizzando il comando gcloud resource-manager tags bindings delete:

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

Sostituisci quanto segue:

  • TAG_VALUE_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/tables/my_table.
  • LOCATION: la località del 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.

Tagga altre risorse simili a tabelle

Allo stesso modo, puoi taggare viste, viste materializzate, cloni e snapshot di BigQuery.

Tagga le colonne

Puoi contrassegnare le colonne della tabella con tag di governance dei dati per controllo dell'accesso a livello di colonna e il mascheramento dei dati.

Elimina tag

Non puoi eliminare un tag se è presente un riferimento a una tabella, una vista o un set di dati. Devi scollegare tutte le risorse di associazione dei tag esistenti prima di eliminare la chiave o il valore del tag. Per eliminare chiavi tag e valori tag, consulta la sezione Elimina i tag.

Esempio

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

  1. Crea 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 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, quindi seleziona Tag.

  9. Nel menu Operatore, seleziona ha un valore.

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

    Esempio di condizione IAM che utilizza i tag.

    Questa condizione del tag IAM limita l'accesso del tirocinante 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 collegare 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. Ad esempio:

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

Controlla l'accesso alle colonne con i tag di governance dei dati

Puoi applicare la sicurezza a livello di colonna e il mascheramento dei dati in BigQuery utilizzando i tag di governance dei dati. I tag di governance dei dati sono un tipo di tag di Resource Manager che puoi collegare alle colonne sensibili e utilizzare nelle policy dei dati di BigQuery per concedere l'accesso condizionale agli utenti.

Configura la sicurezza a livello di colonna creando tag di governance dei dati e collegandoli alle colonne BigQuery. Poi, crea policy dei dati di BigQuery Data Policy che fanno riferimento a questi tag. Queste policy applicano regole di mascheramento dei dati o concedono l'accesso ai dati non elaborati a utenti specifici, garantendo che solo le entità autorizzate visualizzino i dati sensibili.

Per saperne di più, consulta Introduzione al controllo dell'accesso a livello di colonna e Introduzione al mascheramento dei dati.

Per creare e gestire i tag di governance dei dati nella console Google Cloud , puoi utilizzare il Centro sicurezza di BigQuery.

Prima di iniziare a utilizzare i tag di governance

  1. Installa Google Cloud CLI.

  2. Configura gcloud CLI per utilizzare la tua identità federata.

    Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Per creare e gestire i tag di governance dei dati, devi utilizzare i prezzi on demand o la versione BigQuery Enterprise o Enterprise Plus.

Ruoli obbligatori per i tag di governance dei dati

Per ottenere le autorizzazioni necessarie per controllare l'accesso alle colonne con i tag di governance dei dati, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Crea tag di governance dei dati:
  • Associa o rimuovi i tag dalle colonne:
    • BigQuery Data Owner (roles/bigquery.dataOwner) nella tabella
    • Tag User (roles/resourcemanager.tagUser) nell'organizzazione, nel progetto o nel valore del tag
  • Creare e gestire policy dei dati: BigQuery Data Policy Admin (roles/bigquerydatapolicy.admin) sul progetto

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

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

Crea tag di governance dei dati

Crea la chiave del tag di governance dei dati e i relativi valori.

Crea una chiave tag

Per creare una chiave per un tag di governance dei dati, imposta il campo purpose su DATA_GOVERNANCE quando crei la chiave del tag. L'impostazione di questo scopo classifica il tag per la sicurezza a livello di colonna o il mascheramento dei dati e lo distingue dai tag delle risorse generali in BigQuery.

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione di BigQuery, fai clic su Governance, quindi su Security Center.

  3. Fai clic sulla scheda Tag di governance dei dati.

  4. Fai clic su Crea.

  5. Nel riquadro Crea chiave tag, specifica i dettagli della chiave tag:

    • Nel campo Nome tag di governance dei dati, inserisci un nome per la chiave tag.
    • (Facoltativo) Nel campo Descrizione, inserisci una descrizione per la chiave tag.
  6. Fai clic su Crea.

gcloud

  1. Esegui il comando gcloud resource-manager tags keys create:

    gcloud resource-manager tags keys create TAG_KEY \
        --parent=projects/PROJECT_ID \
        --purpose=DATA_GOVERNANCE
    

    Sostituisci quanto segue:

    • TAG_KEY: il nome breve della chiave tag.
    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto, utilizza organizations/ORGANIZATION_ID anziché projects/PROJECT_ID.

Terraform

Per creare una chiave tag per la governance dei dati, utilizza la risorsa google_tags_tag_key nel provider google-beta e imposta l'argomento purpose su DATA_GOVERNANCE:

resource "google_tags_tag_key" "dg_key" {
  provider   = google-beta
  parent     = "projects/PROJECT_ID"
  short_name = "TAG_KEY"
  purpose    = "DATA_GOVERNANCE"
}

Sostituisci quanto segue:

  • TAG_KEY: il nome breve della chiave tag.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto, utilizza organizations/ORGANIZATION_ID anziché projects/PROJECT_ID.

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

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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

  1. Invia una richiesta POST all'endpoint tagKeys:

    curl --request POST \
      "https://cloudresourcemanager.googleapis.com/v3/tagKeys" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{"shortName":"TAG_KEY","parent":"projects/PROJECT_ID","purpose":"DATA_GOVERNANCE"}' \
      --compressed
    

    Sostituisci quanto segue:

    • TAG_KEY: il nome breve della chiave tag.
    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto, utilizza organizations/ORGANIZATION_ID anziché projects/PROJECT_ID.

Crea un valore del tag

Per aggiungere uno o più valori a una chiave di tag, segui questi passaggi.

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione di BigQuery, fai clic su Governance, quindi su Security Center.

  3. Fai clic sulla scheda Tag di governance dei dati.

  4. Nell'elenco delle chiavi dei tag, individua la chiave del tag a cui vuoi aggiungere un valore, fai clic su more_vert Azioni, quindi su Aggiungi valori dei tag.

  5. Nel riquadro Aggiungi valori dei tag, inserisci un nome breve per il valore del tag.

  6. (Facoltativo) Nel campo Descrizione, inserisci una descrizione.

  7. Fai clic su Salva.

gcloud

  1. Recupera il nome con spazio dei nomi per la chiave tag eseguendo il comando gcloud resource-manager tags keys list:

    gcloud resource-manager tags keys list --parent=projects/PROJECT_ID
    
  2. Crea un nuovo valore eseguendo il comando gcloud resource-manager tags values create:

    gcloud resource-manager tags values create TAG_VALUE \
        --parent=PROJECT_ID/TAG_KEY
    

    Sostituisci quanto segue:

    • TAG_VALUE: un nome breve specificato dall'utente del valore del tag.
    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto, utilizza il tuo ORGANIZATION_ID.

Terraform

Per creare un valore del tag, utilizza la risorsa google_tags_tag_value nel provider google-beta:

resource "google_tags_tag_value" "dg_value" {
  provider   = google-beta
  parent     = "tagKeys/${google_tags_tag_key.dg_key.name}"
  short_name = "TAG_VALUE"
}

Sostituisci quanto segue:

  • TAG_VALUE: un nome breve specificato dall'utente del valore del tag.

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

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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

  1. Recupera il nome con spazio dei nomi per la chiave tag:

    curl --request GET \
        "https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name=PROJECT_ID/TAG_KEY" \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json'
    

    La risposta contiene il campo name, ad esempio tagKeys/4567890123.

  2. Invia una richiesta POST all'endpoint tagValues con il nome della chiave tag:

    curl --request POST \
      "https://cloudresourcemanager.googleapis.com/v3/tagValues" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{"shortName":"TAG_VALUE","parent":"tagKeys/TAG_KEY_ID"}' \
      --compressed
    

    Sostituisci quanto segue:

    • TAG_VALUE: un nome breve specificato dall'utente del valore del tag.
    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto, utilizza il tuo ORGANIZATION_ID.
    • TAG_KEY_ID: il nome con spazio dei nomi della chiave tag del passaggio 1. Ad esempio, se il nome della chiave tag è tagKeys/4567890123, l'ID della chiave tag è 4567890123.

Crea valori dei tag gerarchici

In via facoltativa, puoi creare un valore di tag figlio con un valore di tag padre e creare un albero gerarchico di valori di tag di governance dei dati. La gerarchia può avere una profondità di 5 livelli, come mostrato nel seguente diagramma:

Diagramma del flusso di lavoro per controllo dell'accesso a livello di colonna utilizzando i tag di governance dei dati.

gcloud

Per creare un valore di tag figlio, esegui il comando gcloud resource-manager tags values create e specifica un valore di tag padre nel flag --parent:

gcloud resource-manager tags values create CHILD_TAG_VALUE \
--parent=PROJECT_ID/TAG_KEY/PARENT_TAG_VALUE

Sostituisci quanto segue:

  • CHILD_TAG_VALUE: il nome breve del valore del tag figlio che stai creando.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud . Per fornire un'organizzazione anziché un progetto, utilizza ORGANIZATION_ID.
  • TAG_KEY: il nome breve della chiave tag che è l'elemento principale del valore tag.
  • PARENT_TAG_VALUE: il nome breve del valore del tag principale.

API

Per creare un valore di tag figlio, utilizza il nome della risorsa del valore di tag padre (ad esempio, tagValues/123456789012) nel campo parent:

curl --request POST \
  "https://cloudresourcemanager.googleapis.com/v3/tagValues" \
  --header "Authorization: Bearer $(gcloud auth print-access-token)" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"shortName":"CHILD_TAG_VALUE","parent":"tagValues/PARENT_TAG_VALUE_ID"}' \
  --compressed

Sostituisci quanto segue:

  • CHILD_TAG_VALUE: il nome breve del valore del tag figlio che stai creando.
  • PARENT_TAG_VALUE_ID: l'ID numerico del valore tag principale.

Collega i tag di governance dei dati alle colonne BigQuery

Collega i tag di governance dei dati che hai creato alle colonne BigQuery che vuoi proteggere.

SQL

Crea una nuova tabella con una colonna con tag

Per collegare i tag di governance dei dati durante la creazione di una tabella, utilizza l'istruzione CREATE TABLE. Specifica il tag impostando l'opzione data_governance_tags sulla colonna.

CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID (
  COLUMN_NAME INT64 OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")])
);

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud . Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizza ORGANIZATION_ID per il formato della chiave tag (ORGANIZATION_ID/TAG_KEY).
  • DATASET_ID: l'ID del set di dati in cui si trova la tabella.
  • TABLE_ID: l'ID della tabella che stai creando.
  • COLUMN_NAME: il nome della colonna che vuoi taggare.
  • TAG_KEY: la chiave tag che vuoi applicare.
  • TAG_VALUE: il valore del tag che vuoi applicare.

Aggiungi un tag a una tabella esistente

Per collegare i tag di governance dei dati a una colonna di una tabella esistente, utilizza l'istruzione ALTER TABLE per impostare l'opzione data_governance_tags sulla colonna.

ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
ALTER COLUMN COLUMN_NAME SET OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")]);

Interfaccia a riga di comando bq

Crea una nuova tabella con una colonna con tag

  1. Per creare un file di schema JSON locale che definisce il tag, esegui il comando bq mk:

    bq mk \
        --table \
        --project_id=PROJECT_ID \
        --description="description of my table" \
        --schema=SCHEMA_FILE.json \
        DATASET_ID.TABLE_ID
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizza ORGANIZATION_ID per il formato della chiave tag (ORGANIZATION_ID/TAG_KEY).
    • DATASET_ID: l'ID del set di dati in cui si trova la tabella.
    • TABLE_ID: l'ID della tabella che stai creando.

Aggiungi un tag a una tabella esistente

  1. Per aggiungere un tag a una tabella esistente, esporta prima il relativo schema in un file locale:

    bq show \
        --project_id=PROJECT_ID \
        --schema \
        --format=prettyjson \
        DATASET_ID.TABLE_ID > SCHEMA_FILE.json
    
  2. Modifica il file dello schema per aggiungere l'oggetto dataGovernanceTagsInfo alla colonna. Ad esempio:

    [
      {
        "description": "my sensitive column",
        "mode": "NULLABLE",
        "name": "Column_X",
        "type": "INT64",
        "dataGovernanceTagsInfo": {
          "dataGovernanceTags": {
            "PROJECT_ID/TAG_KEY": "TAG_VALUE"
          }
        }
      },
      {
        "mode": "REQUIRED",
        "name": "column2",
        "type": "FLOAT"
      }
    ]
    
  3. Aggiorna la tabella per collegare i tag alla colonna sensibile con il comando bq update:

    bq update \
        --project_id=PROJECT_ID \
        --schema=SCHEMA_FILE.json \
        DATASET_ID.TABLE_ID
    

    Puoi anche utilizzare il comando bq update per rimuovere i tag esistenti e collegare nuovi tag.

Terraform

Crea una nuova tabella con una colonna con tag

Per collegare i tag di governance dei dati a una colonna durante la creazione di una tabella, utilizza la risorsa google_bigquery_table nel provider google-beta. Imposta l'oggetto dataGovernanceTagsInfo all'interno della definizione dello schema della colonna.

L'esempio seguente crea una tabella e associa un tag di governance dei dati a una colonna:

resource "google_bigquery_table" "table" {
  provider   = google-beta
  dataset_id = "DATASET_ID"
  table_id   = "TABLE_ID"
  schema     = <<EOF
[
{
"name": "COLUMN_NAME",
"type": "STRING",
"mode": "NULLABLE",
"dataGovernanceTagsInfo": {
  "dataGovernanceTags": {
    "PROJECT_ID/TAG_KEY": "TAG_VALUE"
  }
}
}
]
EOF
  deletion_protection = false
}

Sostituisci quanto segue:

  • DATASET_ID: l'ID del set di dati in cui si trova la tabella.
  • TABLE_ID: l'ID della tabella che stai creando.
  • COLUMN_NAME: il nome della colonna che vuoi taggare.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud . Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizza ORGANIZATION_ID per il formato della chiave tag (ORGANIZATION_ID/TAG_KEY).
  • TAG_KEY: il nome breve della chiave tag.
  • TAG_VALUE: il nome breve del valore del tag che vuoi collegare.

Aggiungi un tag a una tabella esistente

Per collegare o aggiornare i tag di governance dei dati in una colonna di una tabella esistente, aggiorna lo schema della colonna nella risorsa google_bigquery_table in modo da includere o modificare l'oggetto dataGovernanceTagsInfo, quindi applica la configurazione aggiornata.

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

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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

Crea una nuova tabella con una colonna con tag

Utilizza il metodo tables.insert. Includi il campo dataGovernanceTagsInfo nel corpo della richiesta.

```json
{
  "schema": {
    "fields": [
      {
        "name": "Column_X",
        "type": "INT64",
        "description": "sensitive column",
        "dataGovernanceTagsInfo": {
          "dataGovernanceTags": {
            "PROJECT_ID/TAG_KEY": "TAG_VALUE"
          }
        }
      }
    ]
  }
}
```

Aggiungi un tag a una tabella esistente

  1. Recupera la risorsa della tabella corrente con il metodo tables.get.

  2. Modifica la risorsa della tabella in modo da includere il campo dataGovernanceTagsInfo per la colonna di destinazione.

  3. Chiama il metodo tables.update o tables.patch con la risorsa della tabella aggiornata.

Crea e gestisci le policy dei dati

Crea e gestisci le policy dei dati BigQuery che fanno riferimento ai tag di governance dei dati per applicare regole di mascheramento o policy di accesso ai dati non elaborati.

Dopo aver creato una policy dei dati per una colonna con tag, solo gli utenti specificati nella policy possono accedere alla colonna, a condizione che abbiano anche accesso alla tabella. A tutti gli altri utenti viene negato l'accesso.

Crea policy dei dati

Terraform

Per creare una policy dei dati che faccia riferimento a un tag di governance dei dati, utilizza la risorsa google_bigquery_datapolicyv2_data_policy nel provider google-beta. Specifica il blocco data_governance_tag per associare la policy a una chiave e a un valore del tag di governance dei dati.

Crea una policy dei dati con una regola di mascheramento SHA256 predefinita

L'esempio seguente crea una policy di mascheramento dei dati che utilizza una routine di mascheramento SHA256 predefinita:

resource "google_bigquery_datapolicyv2_data_policy" "mask_policy" {
  provider         = google-beta
  location         = "LOCATION"
  data_policy_type = "DATA_MASKING_POLICY"
  data_policy_id   = "POLICY_ID"
  data_masking_policy {
    predefined_expression = "SHA256"
  }
  data_governance_tag {
    key   = "PROJECT_ID/TAG_KEY"
    value = "TAG_VALUE"
  }
  grantees = [
    "principal://goog/subject/EMAIL_ADDRESS"
  ]
}

Sostituisci quanto segue:

  • LOCATION: la regione in cui stai creando la policy dei dati. Per saperne di più, consulta Località.
  • POLICY_ID: l'ID della policy dati.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud . Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizza ORGANIZATION_ID anziché il formato key (ORGANIZATION_ID/TAG_KEY).
  • TAG_KEY: il nome breve della chiave tag.
  • TAG_VALUE: il nome breve del valore tag.
  • EMAIL_ADDRESS: l'indirizzo email dell'utente o del account di servizio a cui concedere l'accesso.
Crea una policy di accesso ai dati non elaborati

Per creare una policy di accesso ai dati non elaborati, imposta data_policy_type su RAW_DATA_ACCESS_POLICY:

resource "google_bigquery_datapolicyv2_data_policy" "raw_policy" {
  provider         = google-beta
  location         = "LOCATION"
  data_policy_type = "RAW_DATA_ACCESS_POLICY"
  data_policy_id   = "POLICY_ID"
  data_governance_tag {
    key   = "PROJECT_ID/TAG_KEY"
    value = "TAG_VALUE"
  }
  grantees = [
    "principal://goog/subject/EMAIL_ADDRESS"
  ]
}

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

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 nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la 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.

    Facoltativamente, 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

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  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

Crea una policy dei dati che utilizzi una regola di mascheramento SHA256 predefinita o crea una policy di accesso ai dati non elaborati.

Crea una policy dei dati con una regola di mascheramento SHA256 predefinita

Per creare una policy dei dati con una regola di mascheramento SHA256 predefinita, invia una richiesta POST all'endpoint dataPolicies:

curl --request POST \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
    --header "Authorization: Bearer $(gcloud auth print-access-token)" \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{"dataPolicy":{"dataPolicyType":"DATA_MASKING_POLICY","dataMaskingPolicy":{"predefinedExpression":"SHA256"},"grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
    --compressed

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizza ORGANIZATION_ID anziché il formato dataGovernanceTag.key (ORGANIZATION_ID/TAG_KEY).
  • LOCATION: la regione in cui stai creando la policy dei dati. Per saperne di più, consulta Località.
  • EMAIL_ADDRESS: l'indirizzo email dell'utente a cui concedere l'accesso.
  • TAG_KEY: il nome breve della chiave tag.
  • TAG_VALUE: un nome breve specificato dall'utente del valore del tag.
  • POLICY_ID: l'ID della policy dati.
Crea una policy di accesso ai dati non elaborati

Per creare una policy di accesso ai dati non elaborati, imposta dataPolicyType su RAW_DATA_ACCESS_POLICY:

curl --request POST \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
    --header "Authorization: Bearer $(gcloud auth print-access-token)" \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{"dataPolicy":{"dataPolicyType":"RAW_DATA_ACCESS_POLICY","grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
    --compressed

Aggiorna le policy relative ai dati

Aggiorna una policy dei dati esistente per concedere l'accesso ad altri utenti.

API

  1. Per aggiungere utenti aggiornando direttamente una policy, recupera prima la policy attuale e il relativo etag:

    curl --request GET \
        "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json' \
        --header 'Content-Type: application/json' \
        --compressed
    
  2. Invia una richiesta PATCH con l'elenco aggiornato dei beneficiari e il etag del passaggio precedente:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"],
        "etag": "ETAG"
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID?updateMask=grantees"
    

    Sostituisci ETAG con il valore etag restituito dalla richiesta GET nel passaggio precedente.

    In alternativa, utilizza il metodo addGrantees per aggiungere utenti a una policy:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"]
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:addGrantees"
    
  3. Per rimuovere gli utenti da una policy, utilizza il metodo removeGrantees:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"]
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:removeGrantees"
    

Elimina le policy dei dati

API

Per eliminare una policy dei dati, invia una richiesta DELETE all'endpoint dataPolicies:

curl --request DELETE \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed

Elenca le policy sui dati

API

Per elencare le policy dei dati che fanno riferimento a una chiave tag, invia una richiesta GET all'endpoint dataPolicies con un parametro filter:

curl --request GET \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies?filter=dataGovernanceTag:PROJECT_ID/TAG_KEY" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed

Interazioni con altre funzionalità

Questa sezione descrive l'interazione dei tag di governance dei dati con altre funzionalità di BigQuery.

Funzionalità Interazione
Schema di informazioni I tag di governance dei dati collegati alle colonne sono inclusi nelle viste INFORMATION_SCHEMA.COLUMNS e INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
Copia tabella Le copie delle tabelle tra regioni sono disabilitate per le tabelle con funzionalità di sicurezza a livello di colonna, incluse le tabelle con tag di governance dei dati.
Viaggio nel tempo L'accesso ai dati storici della tabella è regolato dalle policy di accesso e dai tag associati alla tabella.

Configura un progetto di policy dei dati predefinito

Quando accedi alle colonne protette dai tag di governance dei dati, BigQuery valuta per impostazione predefinita solo le policy dei dati nel progetto in cui si trova la tabella. Le policy dei dati definite in altri progetti non vengono applicate, a meno che un amministratore non configuri un progetto di policy dei dati predefinito a livello di organizzazione.

Se per la tua organizzazione è configurato un progetto di policy dei dati predefinito, BigQuery valuta sia le policy dei dati del progetto della tabella sia quelle del progetto di policy dei dati predefinito quando determina l'accesso alle colonne.

Se un utente è soggetto a policy sui dati in conflitto sia nel progetto della tabella sia nel progetto delle policy sui dati predefinito, le policy sui dati nel progetto della tabella hanno la precedenza.

Per impostare o visualizzare l'opzione default_data_policy_projects a livello di organizzazione utilizzando DDL o viste INFORMATION_SCHEMA, consulta Impostazioni di gestione dei dati nella documentazione di configurazione predefinita.

Limitazioni dei tag di governance dei dati

  • Le tabelle BigQuery Omni non supportano i tag di governance dei dati sulle colonne.
  • Puoi utilizzare la console Google Cloud per visualizzare i tag di governance dei dati nelle colonne, ma non per associarli o annullarne l'associazione.
  • Puoi associare un tag per colonna e fino a 1000 tag univoci per tabella.
  • Se esegui una query su una colonna con tag utilizzando l'API BigQuery Storage Read, le chiamate tabledata.list o le tabelle con funzione carattere jolly, ricevi un errore di accesso negato, a meno che una policy dei dati non ti conceda l'accesso.
  • Per i campi STRUCT, puoi applicare i tag di governance dei dati solo ai campi foglia.
  • Puoi eliminare i valori dei tag collegati alle colonne. Se elimini un valore tag, l'associazione del tag persiste nella colonna, ma poiché il valore tag non esiste più, l'accesso alla colonna potrebbe andare perso.

Risolvi i problemi relativi ai tag di governance dei dati

Questa sezione descrive come risolvere i problemi comuni durante il controllo dell'accesso alle colonne con tag di governance dei dati.

Nomi dei tag formattati in modo errato

Quando crei i tag, definisci un nome breve (ad esempio ssn). Tuttavia, quando colleghi i tag alle colonne dello schema o li utilizzi nelle condizioni, la chiave del tag deve utilizzare il formato con spazio dei nomi (PROJECT_ID/TAG_KEY o ORGANIZATION_ID/TAG_KEY), mentre il valore del tag utilizza comunque il nome breve. Se fornisci solo il nome breve della chiave tag, viene generato un errore Invalid tagKey o Invalid tagValue.

Applicazione delle policy tra progetti

Per impostazione predefinita, vengono valutate solo le policy dei dati del progetto della tabella. Le policy di altri progetti non vengono applicate, a meno che non sia configurato un progetto di policy dei dati predefinito a livello di organizzazione. Per saperne di più sulla configurazione e sulla valutazione delle policy tra progetti, consulta Configura un progetto di policy dei dati predefinito.

Passaggi successivi