Controllare l'accesso con i tag

Questo documento descrive come utilizzare i tag con le risorse BigQuery per controllo dell'accesso#39;accesso.

Un tag è una coppia chiave-valore che puoi collegare a una risorsa Google Cloud. Puoi utilizzare i tag con BigQuery nei seguenti modi:

  • Concedere o negare criteri in modo condizionale: puoi allegare tag a tabelle, viste e set di dati BigQuery e utilizzare Identity and Access Management (IAM) per concedere ruoli in modo condizionale o negare l'accesso (anteprima) a queste risorse in base ai relativi tag. Per saperne di più sui criteri di negazione, consulta Criteri di negazione.
  • Controllo dell'accesso a livello di colonna: puoi collegare tag di governance dei dati (anteprima) alle colonne delle tabelle e utilizzarli con le policy dei dati per limitare l'accesso ai dati delle colonne.

Puoi collegare i tag direttamente a una risorsa oppure i tag possono essere ereditati dalle risorse padre nella gerarchia delle risorse Google Cloud .

Questo documento si concentra sull'utilizzo dei tag con IAM per concedere o negare in modo condizionale l'accesso a tabelle, viste e set di dati BigQuery.

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

Per concedere le autorizzazioni a molte risorse BigQuery correlate contemporaneamente, incluse quelle che non esistono ancora, valuta la possibilità di utilizzare le 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 di controllo dell'accesso alle tabelle in altre regioni.

  • Puoi allegare 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 quella 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, il che significa che a un utente viene concesso un ruolo su una risorsa solo se questa risorsa ha un tag particolare, l'accesso alla risorsa viene negato indipendentemente dai tag allegati. Se la condizione del tag è negativa, il che significa che a un utente viene concesso un ruolo su una risorsa solo se questa risorsa non ha un tag specifico, la condizione del tag non viene controllata.

Ruoli obbligatori

Devi concedere ruoli IAM che forniscano 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 Utente tag (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
Allegare un tag a una tabella o a una vista
  • Autorizzazione bigquery.tables.createTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
  • Autorizzazione bigquery.tables.create per allegare un tag durante la creazione di una tabella o di una visualizzazione
  • Autorizzazione bigquery.tables.update per allegare un tag durante l'aggiornamento di una tabella o di una visualizzazione
  • Autorizzazione bigquery.tables.createTagBinding sulla tabella o sulla vista
  • Autorizzazione resourcemanager.tagValueBindings.create sul valore tag
Rimuovere un tag da una tabella o una visualizzazione
  • 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
Allegare 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 allegare un tag durante la creazione di un set di dati
  • Autorizzazione bigquery.datasets.update per allegare 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
Rimuovere 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 delle chiavi dei tag nella console Google Cloud , devi disporre delle seguenti autorizzazioni:

  • Per elencare le chiavi tag associate a un'organizzazione o a un progetto padre, devi disporre dell'autorizzazione resourcemanager.tagKeys.list a livello di organizzazione o progetto padre e dell'autorizzazione resourcemanager.tagKeys.get per ogni chiave tag. Per visualizzare l'elenco delle chiavi 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 visualizzazione e poi su Dettagli > Modifica dettagli.

  • Per elencare i valori dei tag delle chiavi associate a un'organizzazione o a un progetto padre, devi disporre dell'autorizzazione resourcemanager.tagValues.list a livello di elemento padre 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 visualizzazione e poi su Dettagli > Modifica dettagli.

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

  • Per elencare i tag collegati a una tabella o a 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 collegati a un dataset 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 creare un tag 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.

Assegnare tag ai set di dati

Le sezioni seguenti 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.

Allegare 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 allegare 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 a sinistra 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, vedi Creare 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 attuale o Seleziona il progetto attuale.

        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 nel set di dati, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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 allegando al nuovo set di dati. I tag multipli sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome breve 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.

Il seguente esempio crea un set di dati denominato my_dataset, quindi associa 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 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.

Preparare la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).

  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 viene chiamato 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 main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi 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

    (Facoltativo) Per utilizzare l'ultima versione 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 aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi che Terraform visualizzi il messaggio "Apply complete!".

  3. Apri il tuo Google Cloud progetto 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.

Allegare 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 poi 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 attuale o Seleziona il progetto attuale.

        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 per 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 nella tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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, questo tag 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 nella tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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 allegando al set di dati. I tag multipli sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome breve 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 allegare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: la posizione del set di dati.

Terraform

Aggiungi tag al campo resource_tags del set di dati, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_dataset. Per maggiori informazioni, consulta l'esempio di Terraform in Allegare 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 restituisci la risorsa del set di dati aggiornata utilizzando il metodo datasets.update.

Elenca i tag collegati a un set di dati

I seguenti passaggi 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 poi 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 che contiene il tuo set di dati.
  • DATASET_ID: l'ID del set di dati per il quale vuoi elencare i tag.

gcloud

Per ottenere un elenco di associazioni di tag 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 posizione 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 per set di dati BigQuery utilizzando gcloud resource-manager tags bindings list. Puoi anche utilizzare l'opzione --filter nell'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 che contiene il tuo 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 i 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 allegati al set di dati nel campo resource_tags.

Visualizzazioni

Utilizza la visualizzazione INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Ad esempio, la seguente query mostra tutti i tag collegati a tutti i set di dati in una regione. Questa query restituisce una tabella con colonne che includono 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 la sezione 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 poi 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 che vuoi eliminare.

  6. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER SCHEMA SET OPTIONS.

Il seguente esempio scollega i tag da un set di dati utilizzando l'operatore -=. Per separare tutti i tag da un insieme 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 Eseguire 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. I tag multipli sono separati da virgole. Accetta solo chiavi senza coppie di valori. Ad esempio, 556741164180/env,myProject/department. Ogni tag deve avere il nome della chiave con spazio dei nomi.
  • PROJECT_ID: l'ID del progetto che contiene il tuo set di dati.
  • DATASET_ID: l'ID del set di dati da cui staccare 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 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 scollegare, ad esempio tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/) per identificare il tipo di risorsa. Ad esempio //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: la posizione del set di dati.

Terraform

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

API

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

Tabelle dei tag

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

Allegare tag durante la creazione di una nuova tabella

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

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

  5. Inserisci le informazioni per la nuova tabella. Per maggiori dettagli, vedi Creare e utilizzare 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 attuale o Seleziona il progetto attuale.

        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 nella tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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.

Il seguente esempio crea una tabella denominata mytable, quindi associa 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 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.

Preparare la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).

  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 viene chiamato 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 main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi 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

    (Facoltativo) Per utilizzare l'ultima versione 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 aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi che Terraform visualizzi il messaggio "Apply complete!".

  3. Apri il tuo Google Cloud progetto 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.

Allegare tag a una tabella esistente

Dopo aver creato un tag, puoi collegarlo a una tabella esistente. Puoi collegare un solo valore tag a una tabella per una determinata chiave 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 e poi seleziona una tabella.

  5. Fai clic sulla scheda Dettagli e poi su 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 attuale o Seleziona il progetto attuale.

        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 per 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 nella tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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, questo tag 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 nella tabella, ad esempio 'my-project/env' o '556741164180/department'.
    • TAG_VALUE_1: il nome breve del 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 Eseguire 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 allegando alla tabella. I tag multipli sono separati da virgole. Ad esempio, 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome breve della chiave con spazio dei nomi e il nome breve del valore.
  • PROJECT_ID: l'ID del progetto che contiene la tabella.
  • DATASET_ID: l'ID del set di dati che contiene la tabella.
  • TABLE_ID: l'ID della tabella che stai aggiornando.

gcloud

Per 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 allegare, 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 posizione della tabella.

Terraform

Aggiungi tag al campo resource_tags della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table. Per maggiori informazioni, consulta l'esempio di Terraform in Allegare 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 e poi seleziona una tabella.

    I tag sono visibili nella scheda Dettagli.

bq

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

bq show \
    PROJECT_ID:DATASET_ID.TABLE_ID

Sostituisci quanto segue:

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

gcloud

Per ottenere un elenco di associazioni di tag 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 posizione 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 per tabelle BigQuery utilizzando gcloud resource-manager tags bindings list. Puoi anche utilizzare l'opzione --filter nell'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 che contiene il tuo 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 i 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 visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS.

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

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

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

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 la sezione 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 e poi seleziona una tabella.

  5. Fai clic sulla scheda Dettagli e poi su Modifica dettagli.

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

  7. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER TABLE SET OPTIONS.

Il seguente esempio scollega i tag da una tabella utilizzando l'operatore -=. Per separare 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 Eseguire 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 separando 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 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 posizione 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 BigQuery.

Colonne con tag

Puoi taggare le colonne delle tabelle con tag di governance dei dati per controllo dell'accessoo a livello di colonna e la mascheratura dei dati.

Elimina tag

Non puoi eliminare un tag se vi fa riferimento una tabella, una vista o un set di dati. Prima di eliminare la chiave o il valore del tag, devi scollegare tutte le risorse di associazione tag esistenti. 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 dispone del ruolo IAM Visualizzatore dati BigQuery nel progetto userData. Viene assunto uno stagista analista dei dati e, in base alle norme aziendali, deve avere l'autorizzazione solo per visualizzare il set di dati anonymousData nel progetto userData. Puoi controllare il loro accesso utilizzando i tag.

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

    Esempio di creazione 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. Nel menu Ruolo, seleziona Visualizzatore dati BigQuery.

  5. Fai clic su Aggiungi condizione.

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

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

  8. Nel menu Tipo di condizione, seleziona Risorsa, quindi seleziona Tag.

  9. Nel menu Operatore, seleziona ha 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 una condizione IAM che utilizza i tag.

    Questa condizione del tag IAM limita l'accesso dello stagista 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
    

Controllare 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 Resource Manager che puoi collegare a colonne sensibili e utilizzare nelle policy dei dati BigQuery per concedere l'accesso condizionale ai tuoi utenti.

Configura la sicurezza a livello di colonna creando tag di governance dei dati e collegandoli alle colonne BigQuery. Poi, crea criteri dei dati BigQuery che fanno riferimento a questi tag. Questi criteri applicano regole di mascheramento dei dati o concedono l'accesso ai dati non elaborati a utenti specifici, garantendo che solo i principal autorizzati visualizzino i dati sensibili.

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

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 ulteriori informazioni, vedi 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 BigQuery Enterprise edition.

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 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
  • Crea e gestisci i criteri dei dati: BigQuery 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 la mascheratura dei dati e lo distingue dai tag di risorse generali in BigQuery.

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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto, utilizza organizations/ORGANIZATION_ID anziché projects/PROJECT_ID.

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 Google Cloud progetto. 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:

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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto, utilizza ORGANIZATION_ID.

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 del 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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto, utilizza 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 alternativa, puoi creare un valore di tag figlio associato a un valore di tag e creare un albero gerarchico di valori di tag di governance dei dati. La gerarchia può avere cinque livelli di profondità, 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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto, utilizza il tuo ORGANIZATION_ID.
  • TAG_KEY: il nome breve della chiave tag che è il parent 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 del genitore (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.

Collegare 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 taggata

Per allegare tag di governance dei dati durante la creazione di una nuova tabella, utilizza l'istruzione CREATE TABLE. Specifica il tag impostando l'opzione data_governance_tags nella 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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto come elemento padre del tag, utilizza ORGANIZATION_ID per il formato della chiave del 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.

Aggiungere un tag a una tabella esistente

Per allegare tag di governance dei dati a una colonna in una tabella esistente, utilizza l'istruzione ALTER TABLE per impostare l'opzione data_governance_tags nella colonna.

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

bq CLI

Crea una nuova tabella con una colonna taggata

  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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto come elemento padre del tag, utilizza ORGANIZATION_ID per il formato della chiave del 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.

Aggiungere 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 allegare 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 allegare nuovi tag.

API

Crea una nuova tabella con una colonna taggata

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"
          }
        }
      }
    ]
  }
}
```

Aggiungere un tag a una tabella esistente

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

  2. Modifica la risorsa 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 di tabella aggiornata.

Creare e gestire le norme sui 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 un criterio dei dati per una colonna taggata, solo gli utenti specificati in questo criterio possono accedere alla colonna, a condizione che abbiano anche accesso alla tabella. A tutti gli altri utenti viene negato l'accesso.

Creare policy dei dati

API

Crea una policy dei dati che utilizzi una regola di mascheramento SHA256 predefinita oppure 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 relativa ai 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 Google Cloud progetto. Per fornire un'organizzazione anziché un progetto come elemento padre del tag, utilizza ORGANIZATION_ID anziché il formato dataGovernanceTag.key (ORGANIZATION_ID/TAG_KEY).
  • LOCATION: la regione in cui stai creando la policy di dati. Per saperne di più, consulta le posizioni delle norme relative ai dati.
  • 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 sui 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

Aggiornare le norme relative ai dati

Aggiorna una policy sui dati esistente per concedere l'accesso a utenti aggiuntivi.

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 un criterio:

    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 un criterio, 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"
    

Eliminare i criteri relativi ai dati

API

Per eliminare una norma sui 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 norme sui dati

API

Per elencare le norme sui 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 in che modo i tag di governance dei dati interagiscono con altre funzionalità di BigQuery.

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

Configurare un progetto di norme sui dati predefinito

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

Se per la tua organizzazione è configurato un progetto di criteri di dati predefiniti, BigQuery valuta sia i criteri di dati del progetto della tabella sia quelli del progetto di criteri di dati predefiniti quando determina l'accesso alle colonne.

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

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 dissociarli.
  • Puoi associare un tag per colonna e fino a 1000 tag unici 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 caratteri jolly, ricevi un errore di accesso negato a meno che una norma sui 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 tag persiste nella colonna, ma poiché il valore tag non esiste più, l'accesso alla colonna potrebbe essere 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 ancora il nome breve. Se fornisci solo il nome breve per la chiave del tag, viene generato un errore Invalid tagKey o Invalid tagValue.

Applicazione delle policy tra progetti

Per impostazione predefinita, vengono valutati solo i criteri di gestione dei dati del progetto della tabella. I criteri di altri progetti non vengono applicati, a meno che non venga configurato un progetto di criteri per i dati predefinito a livello di organizzazione. Per saperne di più sulla configurazione e la valutazione delle policy tra progetti, consulta Configura un progetto di policy dei dati predefinito.

Passaggi successivi