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 |
|
|
| Rimuovi un tag da una tabella o una vista |
|
|
| Collega un tag a un set di dati |
|
|
| Rimuovi un tag da un set di dati |
|
|
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.lista livello padre della chiave del tag e dell'autorizzazioneresourcemanager.tagKeys.getper 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.lista livello di elemento principale del valore del tag e dell'autorizzazioneresourcemanager.tagValues.getper 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.
Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.
Fai clic su Visualizza azioni > Crea set di dati.
Inserisci le informazioni per il nuovo set di dati. Per maggiori dettagli, consulta Crea set di dati.
Espandi la sezione Tag.
Per applicare un tag esistente:
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.
Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
Per inserire manualmente un nuovo tag:
Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.
Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci
PROJECT_IDoORGANIZATION_ID, quindi fai clic su Salva.Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
(Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione CREATE SCHEMA.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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:
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.
Nella sezione Informazioni sul set di dati, fai clic su Modifica dettagli.
Espandi la sezione Tag.
Per applicare un tag esistente:
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.
Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
Per inserire manualmente un nuovo tag:
Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.
Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci
PROJECT_IDoORGANIZATION_ID, quindi fai clic su Salva.Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
(Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.
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.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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 esempiotagValues/4567890123o1234567/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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

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/4567890123o1234567/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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.
Nella sezione Informazioni sul set di dati, fai clic su Modifica dettagli.
Nella sezione Tag, fai clic su Elimina elemento accanto al tag da eliminare.
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=[].
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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 esempiotagValues/4567890123o1234567/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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi seleziona un set di dati.
Nella sezione Informazioni set di dati, fai clic su Crea tabella.
Inserisci le informazioni per la nuova tabella. Per maggiori dettagli, consulta Crea e utilizza le tabelle.
Espandi la sezione Tag.
Per applicare un tag esistente:
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.
Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
Per inserire manualmente un nuovo tag:
Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.
Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci
PROJECT_IDoORGANIZATION_ID, quindi fai clic su Salva.Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
(Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.
Fai clic su Crea tabella.
SQL
Utilizza l'istruzione CREATE TABLE.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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:
SCHEMA: la definizione dello schema incorporato.TAG: il tag che stai collegando alla nuova 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 in cui stai creando una tabella.DATASET_ID: l'ID del set di dati in cui stai creando una tabella.TABLE_ID: l'ID della nuova tabella.
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:
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.
Nel riquadro dei dettagli, fai clic su Modifica > Modifica dettagli.
Espandi la sezione Tag.
Per applicare un tag esistente:
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.
Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
Per inserire manualmente un nuovo tag:
Fai clic sulla freccia menu a discesa accanto a Seleziona un ambito e scegli Inserisci manualmente gli ID > Organizzazione, Progetto o Tag.
Se stai creando un tag per il tuo progetto o la tua organizzazione, nella finestra di dialogo inserisci
PROJECT_IDoORGANIZATION_ID, quindi fai clic su Salva.Per Chiave 1 e Valore 1, scegli i valori appropriati dagli elenchi.
(Facoltativo) Per aggiungere altri tag alla tabella, fai clic su Aggiungi tag e segui i passaggi precedenti.
Fai clic su Salva.
SQL
Utilizza l'istruzione ALTER TABLE SET OPTIONS.
L'esempio seguente sovrascrive tutti i tag di una tabella esistente.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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.
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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 esempiotagValues/4567890123o1234567/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_tableLOCATION: 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
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/4567890123o1234567/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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.
Nel riquadro dei dettagli, fai clic su Modifica > Modifica dettagli.
Nella sezione Tag, fai clic su Elimina elemento accanto al tag da eliminare.
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=[].
Nella console Google Cloud , vai alla pagina BigQuery.
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.
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 esempiotagValues/4567890123o1234567/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.
Crea un tag con la chiave
employee_typee il valoreintern:
Nella console Google Cloud vai alla pagina IAM.
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.
Dal menu Ruolo, seleziona Visualizzatore dati BigQuery.
Fai clic su Aggiungi condizione.
Nei campi Titolo e Descrizione, inserisci i valori che descrivono la condizione del tag IAM che vuoi creare.
Nella scheda Generatore di condizioni, fai clic su Aggiungi.
Nel menu Tipo di condizione, seleziona Risorsa, quindi seleziona Tag.
Nel menu Operatore, seleziona ha un valore.
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.
Questa condizione del tag IAM limita l'accesso del tirocinante ai set di dati con il tag
intern.Per salvare la condizione del tag, fai clic su Salva.
Per salvare le modifiche apportate nel riquadro Modifica autorizzazioni, fai clic su Salva.
Per collegare il valore del tag
internal set di datianonymousData, utilizza la riga di comando per eseguire il comandogcloud 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
-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init - 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:
- Tag Administrator (
roles/resourcemanager.tagAdmin) sul progetto o sull'organizzazione - Organization Viewer (
roles/resourcemanager.organizationViewer) sull'organizzazione
- Tag Administrator (
-
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
- BigQuery Data Owner (
-
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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione di BigQuery, fai clic su Governance, quindi su Security Center.
Fai clic sulla scheda Tag di governance dei dati.
Fai clic su Crea.
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.
Fai clic su Crea.
gcloud
Esegui il comando
gcloud resource-manager tags keys create:gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=DATA_GOVERNANCESostituisci 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, utilizzaorganizations/ORGANIZATION_IDanziché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, utilizzaorganizations/ORGANIZATION_IDanzichéprojects/PROJECT_ID.
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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
Invia una richiesta
POSTall'endpointtagKeys: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"}' \ --compressedSostituisci 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, utilizzaorganizations/ORGANIZATION_IDanzichéprojects/PROJECT_ID.
Crea un valore del tag
Per aggiungere uno o più valori a una chiave di tag, segui questi passaggi.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione di BigQuery, fai clic su Governance, quindi su Security Center.
Fai clic sulla scheda Tag di governance dei dati.
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.
Nel riquadro Aggiungi valori dei tag, inserisci un nome breve per il valore del tag.
(Facoltativo) Nel campo Descrizione, inserisci una descrizione.
Fai clic su Salva.
gcloud
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_IDCrea un nuovo valore eseguendo il comando
gcloud resource-manager tags values create:gcloud resource-manager tags values create TAG_VALUE \ --parent=PROJECT_ID/TAG_KEYSostituisci 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 tuoORGANIZATION_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
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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
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 esempiotagKeys/4567890123.Invia una richiesta
POSTall'endpointtagValuescon 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"}' \ --compressedSostituisci 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 tuoORGANIZATION_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:
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, utilizzaORGANIZATION_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, utilizzaORGANIZATION_IDper 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
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_IDSostituisci quanto segue:
PROJECT_ID: l'ID del tuo progetto Google Cloud. Per fornire un'organizzazione anziché un progetto come risorsa padre del tag, utilizzaORGANIZATION_IDper 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
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.jsonModifica il file dello schema per aggiungere l'oggetto
dataGovernanceTagsInfoalla 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" } ]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_IDPuoi anche utilizzare il comando
bq updateper 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, utilizzaORGANIZATION_IDper 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
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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
Recupera la risorsa della tabella corrente con il metodo
tables.get.Modifica la risorsa della tabella in modo da includere il campo
dataGovernanceTagsInfoper la colonna di destinazione.Chiama il metodo
tables.updateotables.patchcon 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, utilizzaORGANIZATION_IDanziché il formatokey(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
- Avvia Cloud Shell.
-
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).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- 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, utilizzaORGANIZATION_IDanziché il formatodataGovernanceTag.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
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' \ --compressedInvia una richiesta
PATCHcon l'elenco aggiornato dei beneficiari e iletagdel 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
ETAGcon il valoreetagrestituito dalla richiestaGETnel passaggio precedente.In alternativa, utilizza il metodo
addGranteesper 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"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.listo 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
- Per una panoramica dei tag in Google Cloud, consulta Panoramica dei tag.
- Per saperne di più su come utilizzare i tag, consulta Creazione e gestione dei tag.
- Scopri di più sull'applicazione delle policy alle colonne.
- Per informazioni su come controllare l'accesso alle risorse BigQuery con le condizioni IAM, consulta Controlla l'accesso con le condizioni IAM.