Taggare tabelle, visualizzazioni e set di dati
Questo documento descrive come utilizzare i tag per applicare in modo condizionale i criteri di Identity and Access Management (IAM) alle tabelle, alle viste e ai set di dati BigQuery.
Un tag è una coppia chiave-valore che puoi collegare direttamente a una tabella, una vista o un set di dati oppure una coppia chiave-valore che una tabella, una vista o un set di dati può ereditare da altre risorse Google Cloud. Puoi applicare i criteri in modo condizionale in base al fatto che una risorsa abbia un tag specifico. Ad esempio, potresti concedere condizionatamente il ruolo Visualizzatore dati BigQuery a un principale su qualsiasi set di dati con il tag environment:dev
.
Per saperne di più sull'utilizzo dei tag nella gerarchia delle risorse Google Cloud, consulta la panoramica dei tag.
Per concedere contemporaneamente le autorizzazioni a molte risorse BigQuery correlate, incluse quelle che non esistono ancora, ti consigliamo di utilizzare le condizioni IAM.
Prima di iniziare
Devi concedere i ruoli IAM che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento. Devi anche creare chiavi e valori tag da associare alle risorse.
Autorizzazioni obbligatorie
Per utilizzare i tag in BigQuery, devi disporre delle seguenti autorizzazioni:
- Per associare un tag a una tabella o una vista, devi disporre dell'autorizzazione IAM
bigquery.tables.createTagBinding
per la tabella o la vista e dell'autorizzazioneresourcemanager.tagValueBindings.create
a livello di progetto per il valore del tag da associare. - Per associare un tag a un set di dati, devi disporre dell'autorizzazione IAM
bigquery.datasets.createTagBinding
per il set di dati e dell'autorizzazioneresourcemanager.tagValueBindings.create
a livello di progetto per il valore del tag da associare. - Per rimuovere un tag da una tabella o una vista, devi disporre dell'autorizzazione IAM
bigquery.tables.deleteTagBinding
per la tabella o la vista e dell'autorizzazioneresourcemanager.tagValueBindings.delete
a livello di progetto per il valore del tag che vuoi eliminare. - Per rimuovere un tag da un set di dati, devi disporre dell'autorizzazione IAM
bigquery.datasets.deleteTagBinding
per il set di dati e dell'autorizzazioneresourcemanager.tagValueBindings.delete
a livello di progetto per il valore del tag da eliminare. - Per elencare le chiavi dei tag associate a un progetto o un'organizzazione principale nel riquadro Modifica dettagli per una tabella, una visualizzazione o un set di dati, devi disporre dell'autorizzazione
resourcemanager.tagKeys.list
a livello di chiave principale del tag e dell'autorizzazioneresourcemanager.tagKeys.get
per ogni chiave del tag. - Per elencare i valori dei tag delle chiavi associate a un progetto o a un'organizzazione principale nel riquadro Modifica dettagli per una tabella, una vista o un set di dati, devi disporre dell'autorizzazione
resourcemanager.tagValues.list
a livello di valore del tag principale e dell'autorizzazioneresourcemanager.tagValues.get
per ogni valore del tag.
Se utilizzi i tag con l'API Cloud Resource Manager o gcloud, hai bisogno anche delle seguenti autorizzazioni:
- Per elencare i tag associati a una tabella o una visualizzazione con l'API Cloud Resource Manager o gcloud CLI, devi disporre dell'autorizzazione IAM
bigquery.tables.listTagBindings
. - Per elencare i tag efficaci per
una tabella o una vista, devi disporre dell'autorizzazione IAM
bigquery.tables.listEffectiveTags
. - Per elencare i tag associati a un
dataset con l'API Cloud Resource Manager o gcloud CLI,
è necessaria l'autorizzazione IAM
bigquery.datasets.listTagBindings
. - Per elencare i tag efficaci per un set di dati, devi disporre dell'autorizzazione IAM
bigquery.datasets.listEffectiveTags
.
Entrambi i seguenti ruoli IAM predefiniti includono tutte le autorizzazioni BigQuery necessarie:
- BigQuery Data Owner (
roles/bigquery.dataOwner
) - Amministratore BigQuery (
roles/bigquery.admin
)
Le autorizzazioni di Resource Manager sono incluse nel ruolo Utente tag
(roles/resourcemanager.tagUser
).
Puoi anche utilizzare i tag per negare l'accesso con i criteri IAM a tabelle, viste e set di dati BigQuery (anteprima). Per ulteriori informazioni, consulta Criteri di rifiuto.
Creare chiavi e valori dei tag
Prima di poter allegare un tag, devi crearlo e configurarne il valore. Per creare chiavi e valori dei tag, consulta Creare un tag e Aggiungere valori dei tag.
Tabelle di tag
Le sezioni seguenti descrivono come allegare i tag a tabelle nuove ed esistenti, elencare i tag allegati a una tabella e scollegare i tag da una tabella.
Attaccare i tag quando crei una nuova tabella
Dopo aver creato un tag, puoi allegarlo a una nuova tabella. Puoi associare solo un valore del tag a una tabella per una determinata chiave del tag. Puoi associare a una tabella un massimo di 50 tag.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e 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 Creare e utilizzare le tabelle.
Nella sezione Tag, seleziona i tag da aggiungere alla nuova tabella.
Fai clic su Crea tabella.
bq
Utilizza il
comando bq mk --table
con il flag --add_tags
:
bq mk --table \ --schema=SCHEMA \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Sostituisci quanto segue:
SCHEMA
: la definizione dello schema in linea.TAG
: il tag da associare 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 e il nome breve del valore con spazio dei nomi.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 che stai creando.
Terraform
Utilizza la risorsa google_bigquery_table
.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Il seguente esempio crea una tabella denominata mytable
, quindi vi associa i tag compilando il campo resource_tags
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
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 farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).
-
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.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- 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
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
API
Chiama il
metodo tables.insert
con una risorsa tabella definita.
Includi i tag nel campo resource_tags
.
Allega i tag a una tabella esistente
Dopo aver creato un tag, puoi collegarlo a una tabella esistente. Puoi associare solo un valore del tag a una tabella per una determinata chiave del tag.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.
Nella scheda Dettagli, fai clic su
Modifica dettagli.Nella sezione Tag, seleziona i tag da aggiungere alla tabella.
Fai clic su Salva.
bq
Utilizza il
comando bq update
con il flag --add_tags
:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Sostituisci quanto segue:
TAG
: il tag che stai collegando alla tabella. Più tag sono separati da virgole. Ad esempio,556741164180/env:prod,myProject/department:sales
. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.PROJECT_ID
: l'ID del progetto che contiene la tabella.DATASET_ID
: l'ID del set di dati che contiene la tabella.TABLE_ID
: l'ID della tabella che stai aggiornando.
gcloud
Per associare un tag a una tabella utilizzando la riga di comando, crea una risorsa di associazione dei tag utilizzando il comando gcloud resource-manager tags bindings create
:
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
TAGVALUE_NAME
: l'ID permanente o il nome nello spazio dei nomi del valore del tag da associare, ad esempiotagValues/4567890123
o1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio://bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table
LOCATION
: la posizione della tua tabella.
Terraform
Aggiungi i tag al campo resource_tags
della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table
. Per maggiori informazioni, consulta l'esempio di Terraform in Associare i tag quando crei una nuova tabella.
API
Chiama il
metodo tables.update
con una risorsa tabella definita.
Includi i tag nel campo resource_tags
.
Elenca i tag associati a una tabella
Puoi elencare i tag collegati direttamente a una tabella. Questa procedura non elenca i tag ereditati dalle risorse principali.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.
I tag sono visibili nella scheda Dettagli.
bq
Utilizza il
comando bq show
e cerca la colonna tags
. Se nella tabella non sono presenti tag, la colonna tags
non viene visualizzata.
bq show \ PROJECT_ID:DATASET_ID.TABLE_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene la tabella.DATASET_ID
: l'ID del set di dati che contiene la tabella.TABLE_ID
: l'ID della tabella.
gcloud
Per ottenere un elenco di associazioni di tag associate a una risorsa, utilizza il
comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
RESOURCE_ID
: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table
.LOCATION
: la posizione del tuo set di dati.
L'output è simile al seguente:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
Terraform
Utilizza il comando terraform state show
per elencare gli attributi della tabella, incluso il campo resource_tags
. Esegui questo comando
nella directory in cui è stato eseguito il file di configurazione Terraform della tabella.
terraform state show google_bigquery_table.default
API
Chiama il
metodo tables.get
con una risorsa tabella definita
e cerca il campo resource_tags
.
Visualizzazioni
Utilizza la
visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS
.
Ad esempio, la seguente query mostra tutti i tag associati a tutte le tabelle di un
set di dati. Questa query restituisce una tabella con colonne tra cui schema_name
(il nome del set di dati), option_name
(sempre 'tags'
),
object_type
(sempre ARRAY<STRUCT<STRING, STRING>>
) e option_value
,
che contiene array di oggetti STRUCT
che rappresentano i tag associati a
ogni set di dati. Per le tabelle senza tag assegnati, la colonna option_value
restituisce un array vuoto.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
Sostituisci DATASET_ID
con l'ID del set di dati
che contiene la tua tabella.
Scollegare i tag da una tabella
Puoi rimuovere un'associazione di tag da una tabella eliminando la relativa associazione. Se devi eliminare un tag, devi prima scollegarlo.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona una tabella.
Nella scheda Dettagli, fai clic su
Modifica dettagli.Nella sezione Tag, rimuovi i tag che vuoi scollegare dalla tabella.
Fai clic su Salva.
bq
Per rimuovere alcuni tag da una tabella, utilizza il
comando bq update
con il flag --remove_tags
:
bq update \ --remove_tags=TAG_KEYS \ PROJECT_ID:DATASET_ID.TABLE_ID
Sostituisci quanto segue:
TAG_KEYS
: le chiavi dei tag che stai scollando dalla tabella, separate da virgole. Ad esempio,556741164180/env,myProject/department
. Ogni chiave del tag deve avere il nome della chiave con spazio dei nomi.PROJECT_ID
: l'ID del progetto che contiene la tabella.DATASET_ID
: l'ID del set di dati che contiene la tabella.TABLE_ID
: l'ID della tabella che stai aggiornando.
Per rimuovere tutti i tag da una tabella, utilizza il
comando bq update
con il flag --clear_all_tags
:
bq update \ --clear_all_tags \ PROJECT_ID:DATASET_ID.TABLE_ID
gcloud
Per rimuovere un'associazione di tag da una tabella utilizzando la riga di comando, elimina l'associazione del tag utilizzando il comando gcloud resource-manager tags bindings delete
:
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
TAGVALUE_NAME
: l'ID permanente o il nome con spazio dei nomi del valore del tag da eliminare, ad esempiotagValues/4567890123
o1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: l'ID completo della tabella, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/my_table
.LOCATION
: la posizione del tuo set di dati.
Terraform
Rimuovi i tag dal campo resource_tags
della tabella, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_table
.
API
Chiama il
metodo tables.update
con una risorsa tabella definita
e rimuovi i tag nel campo resource_tags
. Per rimuovere tutti i tag, rimuovi il campo resource_tags
.
Taggare i set di dati
Le sezioni riportate di seguito descrivono come associare i tag ai set di dati nuovi ed esistenti, elencare i tag associati a un set di dati e scollegare i tag da un set di dati.
Attaccare i tag quando crei un nuovo set di dati
Dopo aver creato un tag, puoi collegarlo a un nuovo set di dati BigQuery. Puoi associare un solo valore tag a un set di dati per una determinata chiave tag. Puoi associare un massimo di 50 tag a un set di dati.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.
Fai clic su > Crea set di dati.
Visualizza azioniNel menu Tag, fai clic su Seleziona ambito.
Seleziona l'ambito per i tag.
Seleziona e aggiungi i tag da aggiungere al set di dati.
Fai clic su Crea set di dati.
bq
Utilizza il
comando bq mk --dataset
con il flag --add_tags
:
bq mk --dataset \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Sostituisci quanto segue:
TAG
: il tag da associare al nuovo set di dati. Più tag sono separati da virgole. Ad esempio,556741164180/env:prod,myProject/department:sales
. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.PROJECT_ID
: l'ID del progetto in cui stai creando un set di dati.DATASET_ID
: l'ID del nuovo set di dati che stai creando.
Terraform
Utilizza la risorsa google_bigquery_dataset
.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
L'esempio seguente crea un set di dati denominato my_dataset
, quindi vi associa i tag compilando il campo resource_tags
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
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 farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).
-
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.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- 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
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
API
Chiama il
metodo datasets.insert
e aggiungi i tuoi tag al campo resource_tags
.
Allega i tag a un set di dati esistente
Dopo aver creato un tag, puoi collegarlo a un set di dati esistente. Puoi associare solo un valore del tag a un set di dati per una determinata chiave del tag.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
Nella sezione Informazioni sul set di dati, fai clic su
Modifica dettagli.Nella sezione Tag, seleziona i tag da aggiungere al set di dati.
Fai clic su Salva.
bq
Utilizza il
comando bq update
con il flag --add_tags
:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Sostituisci quanto segue:
TAG
: il tag che stai associando al set di dati. Più tag sono separati da virgole. Ad esempio,556741164180/env:prod,myProject/department:sales
. Ogni tag deve avere il nome della chiave e il nome breve del valore con spazio dei nomi.PROJECT_ID
: l'ID del progetto in cui si trova il set di dati esistente.DATASET_ID
: l'ID del set di dati esistente.
gcloud
Per associare un tag a un set di dati utilizzando la riga di comando, crea una risorsa di associazione dei tag utilizzando il comando gcloud resource-manager tags bindings create
:
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
TAGVALUE_NAME
: l'ID permanente o il nome nello spazio dei nomi del valore del tag da collegare, ad esempiotagValues/4567890123
o1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset
.LOCATION
: la posizione del tuo set di dati.
Terraform
Aggiungi i tag al campo resource_tags
del set di dati, quindi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_dataset
. Per maggiori informazioni, consulta l'esempio di Terraform in Collegare i tag quando crei un nuovo set di dati.
API
Chiama il
metodo datasets.get
per ottenere la risorsa del set di dati, incluso il campo resource_tags
. Aggiungi i tag al campo resource_tags
e passa la risorsa del set di dati aggiornato utilizzando il metodo datasets.update
.
Elenca i tag associati a un set di dati
I passaggi riportati di seguito forniscono un elenco di associazioni di tag collegate direttamente a un set di dati. Non restituiscono tag ereditati dalle risorse parent.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
I tag vengono visualizzati nella sezione Informazioni sul set di dati.
bq
Per elencare i tag associati a un set di dati, utilizza il
comando bq show
.
bq show PROJECT_ID:DATASET_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto contenente il set di dati.DATASET_ID
: l'ID del set di dati per il quale vuoi elencare i tag.
gcloud
Per ottenere un elenco di associazioni di tag associate a una risorsa, utilizza il
comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
RESOURCE_ID
: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset
.LOCATION
: la posizione del tuo set di dati.
L'output è simile al seguente:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
Terraform
Utilizza il comando terraform state show
per elencare gli attributi del set di dati, incluso il campo resource_tags
. Esegui questo comando
nella directory in cui è stato eseguito il file di configurazione Terraform del set di dati.
terraform state show google_bigquery_dataset.default
API
Chiama il
metodo datasets.get
per ottenere la risorsa del set di dati. La risorsa del set di dati include i tag associati al set di dati nel campo resource_tags
.
Visualizzazioni
Utilizza la
visualizzazione INFORMATION_SCHEMA.SCHEMATA_OPTIONS
.
Ad esempio, la seguente query mostra tutti i tag associati a tutti i set di dati
in una regione. Questa query restituisce una tabella con colonne tra cui schema_name
(i nomi dei set di dati), option_name
(sempre 'tags'
),
object_type
(sempre ARRAY<STRUCT<STRING, STRING>>
) e option_value
,
che contiene array di oggetti STRUCT
che rappresentano i tag associati a
ogni set di dati. Per i set di dati senza tag assegnati, la colonna option_value
restituisce un array vuoto.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
Sostituisci quanto segue:
REGION
: la regione in cui si trovano i set di dati.
Scollegare i tag da un set di dati
Puoi scollegare un tag da una risorsa eliminando la risorsa di associazione dei tag. Se devi eliminare un tag, devi prima scollegarlo.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto 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.
bq
Utilizza il
comando bq update
con il flag --remove_tags
:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
Sostituisci quanto segue:
REMOVED_TAG
: il tag che stai rimuovendo dal set di dati. Più tag sono separati da virgole. Accetta solo chiavi senza coppie di valori. Ad esempio,556741164180/env,myProject/department
. Ogni tag deve avere il nome della chiave con spazio dei nomi.PROJECT_ID
: l'ID del progetto che contiene il tuo set di dati.DATASET_ID
: l'ID del set di dati da cui scollegare i tag.
In alternativa, se vuoi rimuovere tutti i tag da un set di dati, utilizza il
comando bq update
con il flag --clear_all_tags
:
bq update \ --clear_all_tags PROJECT_ID:DATASET_ID
gcloud
Per scollegare un tag da un set di dati utilizzando la riga di comando, elimina il vincolo del tag utilizzando il comando gcloud resource-manager tags bindings delete
:
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Sostituisci quanto segue:
TAGVALUE_NAME
: l'ID permanente o il nome con spazio dei nomi del valore tag da scollegare, ad esempiotagValues/4567890123
o1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: l'ID completo del set di dati, incluso il nome di dominio dell'API (//bigquery.googleapis.com/
) per identificare il tipo di risorsa. Ad esempio,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset
.LOCATION
: la posizione del tuo set di dati.
Terraform
Rimuovi i tag dal campo resource_tags
del set di dati e poi applica la configurazione aggiornata utilizzando la risorsa google_bigquery_dataset
.
API
Chiama il
metodo datasets.get
per ottenere la risorsa del set di dati, incluso il campo resource_tags
. Rimuovi i tag dal campo resource_tags
e passa di nuovo la risorsa del set di dati aggiornato utilizzando il metodo datasets.update
.
Taggare altre risorse simili a tabelle
Analogamente, puoi taggare viste BigQuery, viste materializzate, cloni e snapshot.
Elimina tag
Non puoi eliminare un tag se è fatto riferimento a una tabella, una visualizzazione o un set di dati. Devi staccare tutte le risorse di associazione dei tag esistenti prima di eliminare la chiave o il valore del tag stesso. Per eliminare le chiavi e i valori dei tag, consulta Eliminare i tag.
Esempio
Supponiamo che tu sia un amministratore di un'organizzazione. Gli analisti di dati sono tutti membri del gruppo analysts@example.com, che dispone del ruolo IAM Visualizzatore dati BigQuery nel progetto userData
. Viene assunto un stagista data analyst che, in base alle norme aziendali, deve avere l'autorizzazione solo per visualizzare il set di dati anonymousData
nel progetto userData
.
Puoi controllare il loro accesso utilizzando i tag.
Crea un tag con la chiave
employee_type
e 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.Nel 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 e poi Tag.
Nel menu Operatore, seleziona ha 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 dell'interno 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 associare il valore del tag
intern
al set di datianonymousData
, utilizza la riga di comando per eseguire il comandogcloud resource-manager tags bindings create
:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
Limitazioni
I tag delle tabelle non sono supportati nelle tabelle BigQuery Omni, nelle tabelle dei set di dati nascosti o nelle tabelle temporanee. Inoltre, le query tra regioni in BigQuery Omni non utilizzano i tag durante i controlli di controllo dell'accesso alle tabelle in altre regioni.
Puoi associare un massimo di 50 tag a una tabella o a un set di dati.
Tutte le tabelle a cui viene fatto riferimento in una query con caratteri jolly devono avere esattamente lo stesso insieme di chiavi e valori dei tag.
Gli utenti con accesso condizionale a un set di dati o a una tabella non possono modificare le autorizzazioni per la risorsa tramite la console Google Cloud. Le modifiche alle autorizzazioni sono supportate solo tramite lo strumento bq e l'API BigQuery.
Alcuni servizi esterni a BigQuery non possono verificare correttamente le condizioni dei tag IAM. Se la condizione del tag è positiva, ovvero se a un utente viene assegnato un ruolo in una risorsa solo se questa ha un tag specifico, l'accesso alla risorsa viene negato indipendentemente dai tag ad essa associati. Se la condizione del tag è negativa, ovvero se a un utente viene assegnato un ruolo in una risorsa solo se la risorsa non ha un determinato tag, la condizione del tag non viene controllata.
Ad esempio, Data Catalog non può verificare le condizioni dei tag IAM sui set di dati BigQuery. Supponiamo che esista un criterio IAM condizionale che assegni a uno stagista il ruolo Visualizzatore dati BigQuery nei set di dati con il tag
employee_type=intern
. Poiché si tratta di una condizione di tag positiva, il tirocinante non può visualizzare i set di dati cercandoli in Data Catalog anche se questi set di dati hanno il tagemployee_type=intern
. Se la condizione del tag è stata modificata in una negativa, in modo che lo stagista potesse visualizzare solo i set di dati che non avevano il tagemployee_type=intern
, il controllo verrebbe saltato del tutto e lo stagista potrebbe visualizzare i set di dati a cui normalmente non poteva accedere in BigQuery.
Passaggi successivi
- Per una panoramica dei tag in Google Cloud, consulta Panoramica dei tag.
- Per saperne di più su come utilizzare i tag, consulta Creare e gestire i tag.
- Per informazioni su come controllare l'accesso alle risorse BigQuery con le condizioni IAM, consulta Controllare l'accesso con le condizioni IAM.