Controlla l'accesso alle risorse con IAM
Questo documento descrive come visualizzare, concedere e revocare i controlli dell'accesso per i set di dati BigQuery e per le risorse all'interno dei set di dati: tabelle, viste e routine. Sebbene i modelli siano anche risorse a livello di set di dati, non puoi concedere l'accesso a singoli modelli utilizzando i ruoli IAM.
Puoi concedere l'accesso alle risorse Trusted Cloud by S3NS utilizzando i criteri di autorizzazione, noti anche come criteri IAM (Identity and Access Management), che sono allegati alle risorse. Puoi collegare una sola policy di autorizzazione a ogni risorsa. Il criterio di autorizzazione controlla l'accesso alla risorsa stessa e a tutti i suoi discendenti che ereditano il criterio di autorizzazione.
Per ulteriori informazioni sulle policy di autorizzazione, consulta la sezione Struttura delle policy nella documentazione di IAM.
Questo documento presuppone la conoscenza di Identity and Access Management (IAM) in Trusted Cloud by S3NS.
Limitazioni
- Gli elenchi di controllo dell'accesso dell'accesso (ACL) di routine non sono inclusi nelle routine replicate.
- Le routine all'interno di set di dati esterni o collegati non supportano i controlli dell'accesso.
- Le tabelle all'interno di set di dati esterni o collegati non supportano i controlli dell'accesso.
- I controlli dell'accesso alle routine non possono essere impostati con Terraform.
- I controlli dell'accesso di routine non possono essere impostati con Google Cloud SDK.
- I controlli di accesso di routine non possono essere impostati utilizzando il BigQuery Data Control Language (DCL).
- Data Catalog non supporta i controlli di accesso di routine. Se un utente ha concesso l'accesso a livello di routine in modo condizionale, non vedrà le proprie routine nel riquadro laterale di BigQuery. Per risolvere il problema, concedi l'accesso a livello di set di dati.
- La
visualizzazione
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
non mostra i controlli di accesso per le routine.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento.
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per modificare i criteri IAM per le risorse,
chiedi all'amministratore di concederti il ruolo IAM
Proprietario dati BigQuery (roles/bigquery.dataOwner
)
sul progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per modificare i criteri IAM per le risorse. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per modificare i criteri IAM per le risorse sono necessarie le seguenti autorizzazioni:
-
Per ottenere i criteri di accesso di un set di dati:
bigquery.datasets.get
-
Per impostare i criteri di accesso di un set di dati:
bigquery.datasets.update
-
Per ottenere i criteri di accesso di un set di dati (solo consoleTrusted Cloud ):
bigquery.datasets.getIamPolicy
-
Per impostare i criteri di accesso di un set di dati (solo console):
bigquery.datasets.setIamPolicy
-
Per visualizzare le norme di una tabella o di una vista:
bigquery.tables.getIamPolicy
-
Per impostare il criterio di una tabella o di una vista:
bigquery.tables.setIamPolicy
-
Per ottenere la policy di accesso di una routine:
bigquery.routines.getIamPolicy
-
Per impostare i criteri di accesso di una routine:
bigquery.routines.setIamPolicy
-
Per creare lo strumento bq o job SQL BigQuery (facoltativo):
bigquery.jobs.create
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Utilizzare i controlli di accesso ai set di dati
Puoi fornire l'accesso a un set di dati concedendo a un'entità IAM un ruolo predefinito o personalizzato che determina cosa può fare l'entità con il set di dati. Questa operazione è nota anche come collegamento di una policy di autorizzazione a una risorsa. Dopo aver concesso l'accesso, puoi visualizzare i controlli di accesso del set di dati e revocare l'accesso al set di dati.
Concedere l'accesso a un set di dati
Non puoi concedere l'accesso a un set di dati quando lo crei utilizzando l'interfaccia utente web BigQuery o
lo strumento a riga di comando bq. Devi prima creare il set di dati e poi concedere l'accesso.
L'API ti consente di concedere l'accesso durante la creazione del set di dati chiamando il
metodo datasets.insert
con una risorsa del set di dati definita.
Un progetto è la risorsa principale per un set di dati, mentre un set di dati è la risorsa principale per tabelle e viste, routine e modelli. Quando concedi un ruolo a livello di progetto, il ruolo e le relative autorizzazioni vengono ereditati dal set di dati e dalle risorse del set di dati. Allo stesso modo, quando concedi un ruolo a livello di set di dati, il ruolo e le relative autorizzazioni vengono ereditati dalle risorse all'interno del set di dati.
Puoi fornire l'accesso a un set di dati concedendo un'autorizzazione del ruolo IAM per accedere al set di dati o concedendo l'accesso in modo condizionale utilizzando una condizione IAM. Per saperne di più sulla concessione dell'accesso condizionale, consulta Controllare l'accesso con le condizioni IAM.
Per concedere a un ruolo IAM l'accesso a un set di dati senza utilizzare condizioni, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati da condividere.
Fai clic su > Autorizzazioni.
CondivisioneFai clic su
Aggiungi entità.Nel campo Nuove entità, inserisci un'entità.
Nell'elenco Seleziona un ruolo, seleziona un ruolo predefinito o un ruolo personalizzato.
Fai clic su Salva.
Per tornare alle informazioni sul set di dati, fai clic su Chiudi.
SQL
Per concedere ai principal l'accesso ai set di dati, utilizza l'istruzione DCL GRANT
:
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
GRANT `ROLE_LIST` ON SCHEMA RESOURCE_NAME TO "USER_LIST"
Sostituisci quanto segue:
ROLE_LIST
: un ruolo o un elenco di ruoli separati da virgole che vuoi concedereRESOURCE_NAME
: il nome del set di dati a cui stai concedendo l'accessoUSER_LIST
: un elenco separato da virgole di utenti a cui viene concesso il ruoloPer un elenco dei formati validi, consulta
user_list
.
Fai clic su
Esegui.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
L'esempio seguente concede il ruolo Visualizzatore dati BigQuery a myDataset
:
GRANT `roles/bigquery.dataViewer`
ON SCHEMA `myProject`.myDataset
TO "user:user@example.com", "user:user2@example.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per scrivere le informazioni sul set di dati esistente (inclusi i controlli dell'accesso) in un file JSON, utilizza il comando
bq show
:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati
- PATH_TO_FILE: il percorso del file JSON sul computer locale
Apporta modifiche alla sezione
access
del file JSON. Puoi aggiungere a una delle vocispecialGroup
:projectOwners
,projectWriters
,projectReaders
eallAuthenticatedUsers
. Puoi anche aggiungere uno dei seguenti elementi:userByEmail
,groupByEmail
edomain
.Ad esempio, la sezione
access
del file JSON di un set di dati avrebbe il seguente aspetto:{ "access": [ { "role": "READER", "specialGroup": "projectReaders" }, { "role": "WRITER", "specialGroup": "projectWriters" }, { "role": "OWNER", "specialGroup": "projectOwners" }, { "role": "READER", "specialGroup": "allAuthenticatedUsers" }, { "role": "READER", "domain": "domain_name" }, { "role": "WRITER", "userByEmail": "user_email" }, { "role": "READER", "groupByEmail": "group_email" } ], ... }
Al termine delle modifiche, utilizza il comando
bq update
e includi il file JSON utilizzando il flag--source
. Se il set di dati si trova in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato:PROJECT_ID:DATASET
.bq update
--source PATH_TO_FILE
PROJECT_ID:DATASETPer verificare le modifiche controllo dell'accesso, utilizza di nuovo il comando
bq show
senza scrivere le informazioni in un file:bq show --format=prettyjson PROJECT_ID:DATASET
- Avvia Cloud Shell.
-
Imposta il progetto Trusted 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.
-
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 viene 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
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Trusted Cloud progetto per visualizzare i risultati. Nella console Trusted Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Terraform
Utilizza le risorse
google_bigquery_dataset_iam
per aggiornare
l'accesso a un set di dati.
Impostare i criteri di accesso per un set di dati
L'esempio seguente mostra come utilizzare la
risorsa google_bigquery_dataset_iam_policy
per impostare il criterio IAM per il
set di dati mydataset
. In questo modo viene sostituita qualsiasi policy esistente già collegata
al set di dati:
# This file sets the IAM policy for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". data "google_iam_policy" "iam_policy" { binding { role = "roles/bigquery.admin" members = [ "user:user@example.com", ] } binding { role = "roles/bigquery.dataOwner" members = [ "group:data.admin@example.com", ] } binding { role = "roles/bigquery.dataEditor" members = [ "serviceAccount:bqcx-1234567891011-12a3@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com", ] } } resource "google_bigquery_dataset_iam_policy" "dataset_iam_policy" { dataset_id = google_bigquery_dataset.default.dataset_id policy_data = data.google_iam_policy.iam_policy.policy_data }
Impostare l'appartenenza ai ruoli per un set di dati
L'esempio seguente mostra come utilizzare la
risorsa google_bigquery_dataset_iam_binding
per impostare l'appartenenza a un determinato ruolo per il
set di dati mydataset
. In questo modo, l'eventuale appartenenza esistente a questo ruolo viene sostituita.
Gli altri ruoli all'interno del criterio IAM per il set di dati
vengono conservati:
# This file sets membership in an IAM role for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". resource "google_bigquery_dataset_iam_binding" "dataset_iam_binding" { dataset_id = google_bigquery_dataset.default.dataset_id role = "roles/bigquery.jobUser" members = [ "user:user@example.com", "group:group@example.com" ] }
Impostare l'appartenenza al ruolo per una singola entità
L'esempio seguente mostra come utilizzare la
risorsa google_bigquery_dataset_iam_member
per aggiornare il criterio IAM per il
set di dati mydataset
per concedere un ruolo a un'entità. L'aggiornamento di questo
criterio IAM non influisce sull'accesso per altre entità
a cui è stato concesso questo ruolo per il set di dati.
# This file adds a member to an IAM role for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". resource "google_bigquery_dataset_iam_member" "dataset_iam_member" { dataset_id = google_bigquery_dataset.default.dataset_id role = "roles/bigquery.user" member = "user:user@example.com" }
Per applicare la configurazione di Terraform in un progetto Trusted Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
Applica le modifiche
API
Per applicare i controlli dell'accesso durante la creazione del set di dati, chiama il
metodo datasets.insert
con una
risorsa del set di dati definita.
Per aggiornare i controlli dell'accesso, chiama il
metodo datasets.patch
e
utilizza la proprietà access
nella risorsa Dataset
.
Poiché il metodo datasets.update
sostituisce l'intera risorsa del set di dati, datasets.patch
è il metodo preferito per aggiornare i controlli dell'accesso.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
DatasetMetadataToUpdate
. Quindi chiama la
funzione dataset.Update()
per aggiornare la proprietà.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
dataset.access_entries
con i controlli dell'accesso per un set di dati. Quindi chiama la
funzione client.update_dataset()
per aggiornare la proprietà.
Ruoli predefiniti che concedono l'accesso ai set di dati
Puoi concedere l'accesso a un dataset ai seguenti ruoli IAM predefiniti.
Ruolo | Descrizione |
---|---|
Proprietario dati BigQuery
(roles/bigquery.dataOwner ) |
Se concesso per un set di dati, questo ruolo concede le seguenti autorizzazioni:
|
Editor dati BigQuery
(roles/bigquery.dataEditor ) |
Se concesso per un set di dati, questo ruolo concede le seguenti autorizzazioni:
|
Visualizzatore dati BigQuery
(roles/bigquery.dataViewer ) |
Se concesso per un set di dati, questo ruolo concede le seguenti autorizzazioni:
|
BigQuery Metadata Viewer
(roles/bigquery.metadataViewer ) |
Se concesso per un set di dati, questo ruolo concede le seguenti autorizzazioni:
|
Autorizzazioni set di dati
La maggior parte delle autorizzazioni che iniziano con bigquery.datasets
si applicano a livello di set di dati.
bigquery.datasets.create
non lo fa. Per creare set di dati, è necessario concedere l'autorizzazione bigquery.datasets.create
a un ruolo nel contenitore principale, ovvero il progetto.
La tabella seguente elenca tutte le autorizzazioni per i set di dati e la risorsa di livello più basso a cui può essere applicata l'autorizzazione.
Autorizzazione | Risorsa | Azione |
---|---|---|
bigquery.datasets.create |
Progetto | Crea nuovi set di dati nel progetto. |
bigquery.datasets.get |
Set di dati | Recupera i metadati e i controlli dell'accesso per il set di dati. Per visualizzare le autorizzazioni nella console è necessaria anche l'autorizzazione bigquery.datasets.getIamPolicy . |
bigquery.datasets.getIamPolicy |
Set di dati | Richiesta dalla console per concedere all'utente l'autorizzazione a ottenere i controlli di accesso di un set di dati. Si apre. La console richiede anche l'autorizzazione
bigquery.datasets.get per visualizzare il set di dati. |
bigquery.datasets.update |
Set di dati | Aggiorna i metadati e i controlli dell'accesso per il set di dati. L'aggiornamento dei controlli
di accesso nella console richiede anche l'autorizzazione
bigquery.datasets.setIamPolicy .
|
bigquery.datasets.setIamPolicy |
Set di dati | Richiesta dalla console per concedere all'utente l'autorizzazione a impostare i controlli di accesso di un set di dati. Si apre. La console richiede anche l'autorizzazione
bigquery.datasets.update per aggiornare il set di dati. |
bigquery.datasets.delete |
Set di dati | Elimina un set di dati. |
bigquery.datasets.createTagBinding |
Set di dati | Associa tag al set di dati. |
bigquery.datasets.deleteTagBinding |
Set di dati | Scollega i tag dal set di dati. |
bigquery.datasets.listTagBindings |
Set di dati | Elenca i tag per il set di dati. |
bigquery.datasets.listEffectiveTags |
Set di dati | Elenca i tag effettivi (applicati e ereditati) per il set di dati. |
bigquery.datasets.link |
Set di dati | Crea un set di dati collegato. |
bigquery.datasets.listSharedDatasetUsage |
Progetto | Elenca le statistiche sull'utilizzo dei set di dati condivisi per i set di dati a cui hai accesso
nel progetto. Questa autorizzazione è necessaria per eseguire query sulla visualizzazione INFORMATION_SCHEMA.SHARED_DATASET_USAGE . |
Visualizzare i controlli di accesso per un set di dati
Puoi visualizzare i controlli dell'accesso impostati in modo esplicito per un set di dati scegliendo una delle seguenti opzioni. Per visualizzare i ruoli ereditati, per un dataset, utilizza l'interfaccia utente web di BigQuery.
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
Fai clic su > Autorizzazioni.
CondivisioneI controlli di accesso del set di dati vengono visualizzati nel riquadro Autorizzazioni set di dati.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per ottenere una policy esistente e inviarla a un file locale in formato JSON, utilizza il comando
bq show
in Cloud Shell:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati
- PATH_TO_FILE: il percorso del file JSON sulla macchina locale
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT COLUMN_LIST FROM PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES WHERE object_name = "DATASET";
Sostituisci quanto segue:
- COLUMN_LIST: un elenco separato da virgole di colonne della
visualizzazione
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
- PROJECT_ID: il tuo ID progetto
- REGION: un qualificatore di regione
- DATASET: il nome di un set di dati nel tuo progetto
- COLUMN_LIST: un elenco separato da virgole di colonne della
visualizzazione
Fai clic su
Esegui.
SQL
Esegui una query sulla vista INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Le query per recuperare i controlli dell'accesso per un set di dati devono specificare
object_name
.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
Esempio:
Questa query recupera i controlli dell'accesso per mydataset
.
SELECT object_name, privilege_type, grantee FROM my_project.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES WHERE object_name = "mydataset";
L'output dovrebbe essere simile al seguente:
+------------------+-----------------------------+-------------------------+
| object_name | privilege_type | grantee |
+------------------+-----------------------------+-------------------------+
| mydataset | roles/bigquery.dataOwner | projectOwner:myproject |
| mydataset | roles/bigquery.dataViwer | user:user@example.com |
+------------------+-----------------------------+-------------------------+
API
Per visualizzare i controlli dell'accesso per un set di dati, chiama il metodo
datasets.get
con una risorsa
dataset
definita.
I controlli dell'accesso vengono visualizzati nella proprietà access
della risorsa dataset
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
client.Dataset().Metadata()
. Il criterio di accesso è disponibile nella proprietà Access
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Dataset#getMetadata()
.
La policy di accesso è disponibile nella proprietà di accesso dell'oggetto metadati risultante.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
client.get_dataset()
.
Il criterio di accesso è disponibile nella proprietà
dataset.access_entries
.
Revocare l'accesso a un set di dati
Per revocare l'accesso a un set di dati, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.
Nel riquadro dei dettagli, fai clic su Condivisione > Autorizzazioni.
Nella finestra di dialogo Autorizzazioni dataset, espandi l'entità di cui vuoi revocare l'accesso.
Fai clic su
Rimuovi entità.Nella finestra di dialogo Vuoi rimuovere il ruolo dall'entità?, fai clic su Rimuovi.
Per tornare ai dettagli del set di dati, fai clic su Chiudi.
SQL
Per rimuovere l'accesso di un'entità a un set di dati, utilizza l'istruzione DCL REVOKE
:
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
REVOKE `ROLE_LIST` ON SCHEMA RESOURCE_NAME FROM "USER_LIST"
Sostituisci quanto segue:
ROLE_LIST
: un ruolo o un elenco di ruoli separati da virgole che vuoi revocareRESOURCE_NAME
: il nome della risorsa per cui vuoi revocare l'autorizzazioneUSER_LIST
: un elenco separato da virgole di utenti a cui verranno revocati i ruoliPer un elenco dei formati validi, consulta
user_list
.
Fai clic su
Esegui.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
L'esempio seguente revoca il ruolo BigQuery Data Owner da myDataset
:
REVOKE `roles/bigquery.dataOwner`
ON SCHEMA `myProject`.myDataset
FROM "group:group@example.com", "serviceAccount:user@test-project.s3ns-system.iam.gserviceaccount.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per scrivere le informazioni sul set di dati esistente (inclusi i controlli dell'accesso) in un file JSON, utilizza il comando
bq show
:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati
- PATH_TO_FILE: il percorso del file JSON sul computer locale
Apporta modifiche alla sezione
access
del file JSON. Puoi rimuovere una qualsiasi delle vocispecialGroup
:projectOwners
,projectWriters
,projectReaders
eallAuthenticatedUsers
. Puoi anche rimuovere uno dei seguenti elementi:userByEmail
,groupByEmail
edomain
.Ad esempio, la sezione
access
del file JSON di un set di dati avrebbe il seguente aspetto:{ "access": [ { "role": "READER", "specialGroup": "projectReaders" }, { "role": "WRITER", "specialGroup": "projectWriters" }, { "role": "OWNER", "specialGroup": "projectOwners" }, { "role": "READER", "specialGroup": "allAuthenticatedUsers" }, { "role": "READER", "domain": "domain_name" }, { "role": "WRITER", "userByEmail": "user_email" }, { "role": "READER", "groupByEmail": "group_email" } ], ... }
Al termine delle modifiche, utilizza il comando
bq update
e includi il file JSON utilizzando il flag--source
. Se il set di dati si trova in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato:PROJECT_ID:DATASET
.bq update
--source PATH_TO_FILE
PROJECT_ID:DATASETPer verificare le modifiche controllo dell'accesso, utilizza il comando
show
senza scrivere le informazioni in un file:bq show --format=prettyjson PROJECT_ID:DATASET
API
Chiama il metodo datasets.patch
e utilizza la proprietà access
nella risorsa Dataset
per aggiornare i controlli
dell'accesso.
Poiché il metodo datasets.update
sostituisce l'intera risorsa del set di dati, datasets.patch
è il metodo preferito per aggiornare i controlli dell'accesso.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
DatasetMetadataToUpdate
type
. Quindi chiama la
funzione dataset.Update()
per aggiornare la proprietà.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Dataset#get()
per recuperare i metadati attuali. Modifica la proprietà di accesso per escludere l'entità desiderata, quindi chiama la funzione
Dataset#setMetadata()
per applicare l'elenco di accesso aggiornato.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
dataset.access_entries
con i controlli dell'accesso per un set di dati. Quindi chiama la
funzione client.update_dataset()
per aggiornare la proprietà.
Utilizzare i controlli dell'accesso a tabelle e viste
Le viste vengono trattate come risorse di tabelle in BigQuery. Puoi fornire l'accesso a una tabella o a una vista concedendo a un'entità IAM un ruolo predefinito o personalizzato che determina cosa può fare l'entità con la tabella o la vista. Questa operazione è nota anche come collegamento di una policy di autorizzazione a una risorsa. Dopo aver concesso l'accesso, puoi visualizzare i controlli dell'accesso per la tabella o la vista e puoi revocare l'accesso alla tabella o alla vista.
Concedere l'accesso a una tabella o una vista
Per controllo dell'accesso granulare, puoi concedere un ruolo IAM predefinito o personalizzato per una tabella o una vista specifica. La tabella o la vista eredita anche i controlli dell'accesso specificati a livello di set di dati e superiore. Ad esempio, se concedi a un principal il ruolo Proprietario dati BigQuery in un set di dati, questo principal dispone anche delle autorizzazioni Proprietario dati BigQuery per le tabelle e le viste nel set di dati.
Per concedere l'accesso a una tabella o a una vista, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona una tabella o una vista da condividere.
Fai clic su
Condividi.Fai clic su
Aggiungi entità.Nel campo Nuove entità, inserisci un'entità.
Nell'elenco Seleziona un ruolo, seleziona un ruolo predefinito o un ruolo personalizzato.
Fai clic su Salva.
Per tornare alla tabella o visualizzare i dettagli, fai clic su Chiudi.
SQL
Per concedere alle entità l'accesso a tabelle o viste, utilizza l'istruzione DCL GRANT
:
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
GRANT `ROLE_LIST` ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Sostituisci quanto segue:
ROLE_LIST
: un ruolo o un elenco di ruoli separati da virgole che vuoi concedereRESOURCE_TYPE
: il tipo di risorsa a cui viene applicato il ruoloI valori supportati includono
TABLE
,VIEW
,MATERIALIZED VIEW
eEXTERNAL TABLE
.RESOURCE_NAME
: il nome della risorsa su cui vuoi concedere l'autorizzazioneUSER_LIST
: un elenco separato da virgole di utenti a cui viene concesso il ruoloPer un elenco dei formati validi, vedi
user_list
.
Fai clic su
Esegui.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
Il seguente esempio concede il ruolo Visualizzatore dati BigQuery su myTable
:
GRANT `roles/bigquery.dataViewer`
ON TABLE `myProject`.myDataset.myTable
TO "user:user@example.com", "user:user2@example.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per concedere l'accesso a una tabella o a una vista, utilizza il comando
bq add-iam-policy-binding
:bq add-iam-policy-binding --member=MEMBER_TYPE:MEMBER --role=ROLE --table=true RESOURCE
Sostituisci quanto segue:
- MEMBER_TYPE: il tipo di membro, ad esempio
user
,group
,serviceAccount
odomain
. - MEMBER: l'indirizzo email o il nome di dominio del membro.
- ROLE: il ruolo che vuoi concedere al membro.
- RESOURCE: il nome della tabella o della vista di cui vuoi aggiornare la policy.
- MEMBER_TYPE: il tipo di membro, ad esempio
- Avvia Cloud Shell.
-
Imposta il progetto Trusted 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.
-
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 viene 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
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Trusted Cloud progetto per visualizzare i risultati. Nella console Trusted Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Per recuperare la policy corrente, chiama il metodo
tables.getIamPolicy
.Modifica la policy per aggiungere membri o controlli dell'accesso oppure entrambi. Per il formato richiesto per le norme, consulta l'argomento di riferimento Norme.
Chiama
tables.setIamPolicy
per scrivere la policy aggiornata.
Terraform
Utilizza le risorse
google_bigquery_table_iam
per aggiornare l'accesso a una tabella.
Impostare la norma di accesso per una tabella
L'esempio seguente mostra come utilizzare la
risorsa google_bigquery_table_iam_policy
per impostare il criterio IAM per la
tabella mytable
. Questa sostituisce qualsiasi policy esistente già collegata
alla tabella:
# This file sets the IAM policy for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". data "google_iam_policy" "iam_policy" { binding { role = "roles/bigquery.dataOwner" members = [ "user:user@example.com", ] } } resource "google_bigquery_table_iam_policy" "table_iam_policy" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id policy_data = data.google_iam_policy.iam_policy.policy_data }
Impostare l'appartenenza ai ruoli per una tabella
L'esempio seguente mostra come utilizzare la risorsa google_bigquery_table_iam_binding
per impostare l'appartenenza a un determinato ruolo per la tabella mytable
. In questo modo, l'eventuale appartenenza esistente a questo ruolo viene sostituita.
Gli altri ruoli all'interno del criterio IAM per la tabella
vengono conservati.
# This file sets membership in an IAM role for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". resource "google_bigquery_table_iam_binding" "table_iam_binding" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id role = "roles/bigquery.dataOwner" members = [ "group:group@example.com", ] }
Impostare l'appartenenza al ruolo per una singola entità
L'esempio seguente mostra come utilizzare la
risorsa google_bigquery_table_iam_member
per aggiornare il criterio IAM per la
tabella mytable
per concedere un ruolo a un'entità. L'aggiornamento di questo
criterio IAM non influisce sull'accesso per altre entità
a cui è stato concesso questo ruolo per il set di dati.
# This file adds a member to an IAM role for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". resource "google_bigquery_table_iam_member" "table_iam_member" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id role = "roles/bigquery.dataEditor" member = "serviceAccount:bqcx-1234567891011-12a3@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com" }
Per applicare la configurazione di Terraform in un progetto Trusted Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
Applica le modifiche
API
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
IAM().SetPolicy()
della risorsa
per salvare le modifiche al criterio di accesso per una tabella o una vista.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Table#getIamPolicy()
per recuperare la policy IAM corrente per una tabella o una vista, modifica la policy aggiungendo nuove associazioni e poi utilizza la
funzione Table#setIamPolicy()
per salvare le modifiche alla policy di accesso.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
client.set_iam_policy()
per salvare le modifiche alla policy di accesso per una tabella o una vista.
Ruoli predefiniti che concedono l'accesso a tabelle e viste
Le viste vengono trattate come risorse di tabelle in BigQuery. Per controllo dell'accesso granulare, puoi concedere un ruolo IAM predefinito o personalizzato per una tabella o una vista specifica. La tabella o la vista eredita anche i controlli dell'accesso specificati a livello di set di dati e superiore. Ad esempio, se concedi a un principal il ruolo Proprietario dati BigQuery in un set di dati, questo principal dispone anche delle autorizzazioni di proprietario dei dati per le tabelle e le viste nel set di dati.
I seguenti ruoli IAM predefiniti dispongono di autorizzazioni su tabelle o viste.
Ruolo | Descrizione |
---|---|
Proprietario dati BigQuery
(roles/bigquery.dataOwner ) |
Se concesso a una tabella o a una vista, questo ruolo concede le seguenti autorizzazioni:
|
Editor dati BigQuery
(roles/bigquery.dataEditor ) |
Se concesso a una tabella o a una vista, questo ruolo concede le seguenti autorizzazioni:
|
Visualizzatore dati BigQuery
(roles/bigquery.dataViewer ) |
Se concesso a una tabella o a una vista, questo ruolo concede le seguenti autorizzazioni:
|
BigQuery Metadata Viewer
(roles/bigquery.metadataViewer ) |
Se concesso a una tabella o a una vista, questo ruolo concede le seguenti autorizzazioni:
|
Autorizzazioni per tabelle e viste
Le viste vengono trattate come risorse di tabelle in BigQuery. Tutte le autorizzazioni a livello di tabella si applicano alle visualizzazioni.
La maggior parte delle autorizzazioni che iniziano con bigquery.tables
si applicano a livello di tabella.
bigquery.tables.create
e bigquery.tables.list
non lo fanno. Per creare
ed elencare tabelle o viste, le autorizzazioni bigquery.tables.create
e bigquery.tables.list
devono essere concesse a un ruolo in un contenitore padre: il set di dati o il
progetto.
La tabella seguente elenca tutte le autorizzazioni per tabelle e viste e la risorsa di livello più basso a cui possono essere concesse.
Autorizzazione | Risorsa | Azione |
---|---|---|
bigquery.tables.create |
Set di dati | Crea nuove tabelle nel set di dati. |
bigquery.tables.createIndex |
Tabella | Crea un indice di ricerca nella tabella. |
bigquery.tables.deleteIndex |
Tabella | Elimina un indice di ricerca nella tabella. |
bigquery.tables.createSnapshot |
Tabella | Crea uno snapshot della tabella. La creazione di uno snapshot richiede diverse autorizzazioni aggiuntive a livello di tabella e set di dati. Per maggiori dettagli, vedi Autorizzazioni e ruoli per la creazione di snapshot delle tabelle. |
bigquery.tables.deleteSnapshot |
Tabella | Elimina uno snapshot della tabella. |
bigquery.tables.delete |
Tabella | Eliminare una tabella. |
bigquery.tables.createTagBinding |
Tabella | Crea associazioni di tag risorsa in una tabella. |
bigquery.tables.deleteTagBinding |
Tabella | Elimina le associazioni di tag risorsa in una tabella. |
bigquery.tables.listTagBindings |
Tabella | Elenca le associazioni di tag risorsa in una tabella. |
bigquery.tables.listEffectiveTags |
Tabella | Elenca i tag efficaci (applicati e ereditati) per la tabella. |
bigquery.tables.export |
Tabella | Esporta i dati della tabella. L'esecuzione di un job di esportazione richiede anche
le autorizzazioni bigquery.jobs.create . |
bigquery.tables.get |
Tabella | Ottieni i metadati per una tabella. |
bigquery.tables.getData |
Tabella | Esegui query sui dati della tabella. L'esecuzione di un job query richiede anche
le autorizzazioni bigquery.jobs.create . |
bigquery.tables.getIamPolicy |
Tabella | Ottieni i controlli dell'accesso per la tabella. |
bigquery.tables.list |
Set di dati | Elenca tutte le tabelle e i metadati delle tabelle nel set di dati. |
bigquery.tables.replicateData |
Tabella | Replica i dati della tabella. Questa autorizzazione è necessaria per creare viste materializzate della replica. |
bigquery.tables.restoreSnapshot |
Tabella | Ripristina uno snapshot della tabella. |
bigquery.tables.setCategory |
Tabella | Imposta i tag delle policy nello schema della tabella. |
bigquery.tables.setColumnDataPolicy |
Tabella | Imposta criteri di accesso a livello di colonna su una tabella. |
bigquery.tables.setIamPolicy |
Tabella | Imposta i controlli dell'accesso a una tabella. |
bigquery.tables.update |
Tabella | Aggiorna tabella. metadata. bigquery.tables.get è necessario anche per aggiornare i metadati della tabella nella console. |
bigquery.tables.updateData |
Tabella | Aggiorna i dati della tabella. |
bigquery.tables.updateIndex |
Tabella | Aggiorna un indice di ricerca nella tabella. |
Visualizzare i controlli dell'accesso per una tabella o una vista
Per visualizzare i controlli dell'accesso per una tabella o una vista, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto, un set di dati e seleziona una tabella o una vista.
Fai clic su
Condividi.I controlli dell'accesso alla tabella o alla vista vengono visualizzati nel riquadro Condividi.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per ottenere una policy di accesso esistente e restituirla a un file locale in formato JSON, utilizza il comando
bq get-iam-policy
in Cloud Shell:bq get-iam-policy \ --table=true \ PROJECT_ID:DATASET.RESOURCE > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati
- RESOURCE: il nome della tabella o della vista di cui vuoi visualizzare la policy
- PATH_TO_FILE: il percorso del file JSON sulla macchina locale
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT COLUMN_LIST FROM PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES WHERE object_schema = "DATASET" AND object_name = "TABLE";
Sostituisci quanto segue:
- COLUMN_LIST: un elenco separato da virgole di colonne della
visualizzazione
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
- PROJECT_ID: il tuo ID progetto
- REGION: un qualificatore di regione
- DATASET: il nome di un set di dati che contiene la tabella o la vista
- TABLE: il nome della tabella o della vista
- COLUMN_LIST: un elenco separato da virgole di colonne della
visualizzazione
Fai clic su
Esegui.
SQL
Esegui una query sulla vista INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Le query per recuperare i controlli dell'accesso per una tabella o una vista devono specificare
object_schema
e object_name
.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
Esempio:
SELECT object_name, privilege_type, grantee FROM my_project.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES WHERE object_schema = "mydataset" AND object_name = "mytable";
+------------------+-----------------------------+--------------------------+
| object_name | privilege_type | grantee |
+------------------+-----------------------------+--------------------------+
| mytable | roles/bigquery.dataEditor | group:group@example.com|
| mytable | roles/bigquery.dataOwner | user:user@example.com|
+------------------+-----------------------------+--------------------------+
API
Per recuperare la policy corrente, chiama il
metodo tables.getIamPolicy
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
IAM().Policy()
della risorsa. Poi chiama la funzione Roles()
per ottenere la policy di accesso per una tabella o una vista.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Table#getIamPolicy()
.
I dettagli della policy di accesso sono disponibili nell'oggetto policy restituito.
Revocare l'accesso a una tabella o una vista
Per revocare l'accesso a una tabella o a una vista, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto, un set di dati e seleziona una tabella o una vista.
Nel riquadro dei dettagli, fai clic su Condividi.
Nella finestra di dialogo Condividi, espandi l'entità di cui vuoi revocare l'accesso.
Fai clic su
Elimina.Nella finestra di dialogo Vuoi rimuovere il ruolo dall'entità?, fai clic su Rimuovi.
Per tornare alla tabella o visualizzare i dettagli, fai clic su Chiudi.
SQL
Per rimuovere l'accesso a tabelle o viste dalle entità, utilizza l'istruzione
REVOKE
DCL:
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
REVOKE `ROLE_LIST` ON RESOURCE_TYPE RESOURCE_NAME FROM "USER_LIST"
Sostituisci quanto segue:
ROLE_LIST
: un ruolo o un elenco di ruoli separati da virgole che vuoi revocareRESOURCE_TYPE
: il tipo di risorsa da cui viene revocato il ruoloI valori supportati includono
TABLE
,VIEW
,MATERIALIZED VIEW
eEXTERNAL TABLE
.RESOURCE_NAME
: il nome della risorsa per cui vuoi revocare l'autorizzazioneUSER_LIST
: un elenco separato da virgole di utenti a cui verranno revocati i ruoliPer un elenco dei formati validi, vedi
user_list
.
Fai clic su
Esegui.
Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
L'esempio seguente revoca il ruolo Proprietario dati BigQuery su myTable
:
REVOKE `roles/bigquery.dataOwner`
ON TABLE `myProject`.myDataset.myTable
FROM "group:group@example.com", "serviceAccount:user@myproject.s3ns-system.iam.gserviceaccount.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per revocare l'accesso a una tabella o a una vista, utilizza il comando
bq remove-iam-policy-binding
:bq remove-iam-policy-binding --member=MEMBER_TYPE:MEMBER --role=ROLE --table=true RESOURCE
Sostituisci quanto segue:
- MEMBER_TYPE: il tipo di membro, ad esempio
user
,group
,serviceAccount
odomain
- MEMBER: l'indirizzo email o il nome di dominio del membro
- ROLE: il ruolo che vuoi revocare al membro
- RESOURCE: il nome della tabella o della vista di cui vuoi aggiornare la policy
- MEMBER_TYPE: il tipo di membro, ad esempio
Per recuperare la policy corrente, chiama il metodo
tables.getIamPolicy
.Modifica la policy per rimuovere membri o associazioni oppure entrambi. Per il formato richiesto per le norme, consulta l'argomento di riferimento Norme.
Chiama
tables.setIamPolicy
per scrivere la policy aggiornata.
API
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
policy.Remove()
per rimuovere l'accesso.
Quindi chiama la
funzione IAM().SetPolicy()
per salvare le modifiche alla policy di accesso per una tabella o una vista.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Table#getIamPolicy()
.
Modifica la policy per rimuovere il ruolo o l'entità desiderati, quindi applica la policy aggiornata utilizzando il metodo
Table#setIamPolicy()
.
Utilizzare i controlli dell'accesso per le routine
Per fornire un feedback o richiedere assistenza per questa funzionalità, invia un'email all'indirizzo bq-govsec-eng@google.com.
Puoi fornire l'accesso a una routine concedendo a un'entità IAM](/iam/docs/principal-identifiers#allow) un ruolo predefinito o personalizzato che determina cosa può fare l'entità con la routine. Questa operazione è nota anche come collegamento di una policy di autorizzazione a una risorsa. Dopo aver concesso l'accesso, puoi visualizzare i controlli dell'accesso per la routine e puoi revocare l'accesso alla routine.
Concedere l'accesso a una routine
Per controllo dell'accesso granulare, puoi concedere un ruolo IAM predefinito o personalizzato per una routine specifica. La routine eredita anche i controlli di accesso specificati a livello di set di dati e superiore. Ad esempio, se concedi a un principal il ruolo Proprietario dati BigQuery in un set di dati, questo principal dispone anche delle autorizzazioni Proprietario dati per le routine nel set di dati.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto, il set di dati, Routine e seleziona una routine.
Fai clic su
Condividi.Fai clic su
Aggiungi membri.Nel campo Nuovi membri, inserisci un'entità.
Nell'elenco Seleziona un ruolo, seleziona un ruolo predefinito o un ruolo personalizzato.
Fai clic su Salva.
Per tornare alle informazioni sulla routine, fai clic su Fine.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per scrivere le informazioni sulle routine esistenti (inclusi i controlli dell'accesso) in un file JSON, utilizza il comando
bq get-iam-policy
:bq get-iam-policy \ PROJECT_ID:DATASET.ROUTINE \ > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati che contiene la routine che vuoi aggiornare
- ROUTINE: il nome della risorsa da aggiornare
- PATH_TO_FILE: il percorso del file JSON sul computer locale
Apporta modifiche alla sezione
bindings
del file JSON. Un'associazione vincola una o più entità a un singolorole
. Le entità possono essere account utente, service account, gruppi Google e domini. Ad esempio, la sezionebindings
di un file JSON di una routine avrebbe il seguente aspetto:{ "bindings": [ { "role": "roles/bigquery.dataViewer", "members": [ "user:user@example.com", "group:group@example.com", "domain:example.com", ] }, ], "etag": "BwWWja0YfJA=", "version": 1 }
Per aggiornare la policy di accesso, utilizza il comando
bq set-iam-policy
:bq set-iam-policy PROJECT_ID:DATASET.ROUTINE PATH_TO_FILE
Per verificare le modifiche controllo dell'accesso, utilizza di nuovo il comando
bq get-iam-policy
senza scrivere le informazioni in un file:bq get-iam-policy --format=prettyjson \\ PROJECT_ID:DATASET.ROUTINE
Per recuperare la policy corrente, chiama il metodo
routines.getIamPolicy
.Modifica la policy per aggiungere entità, associazioni o entrambe. Per il formato richiesto per le norme, consulta l'argomento di riferimento Norme.
Chiama
routines.setIamPolicy
per scrivere la policy aggiornata.
API
Ruoli predefiniti che concedono l'accesso alle routine
Per controllo dell'accesso granulare, puoi concedere un ruolo IAM predefinito o personalizzato per una routine specifica. La routine eredita anche i controlli di accesso specificati a livello di set di dati e superiore. Ad esempio, se concedi a un'entità il ruolo Proprietario dati per un set di dati, questa entità dispone anche delle autorizzazioni Proprietario dati per le routine nel set di dati tramite ereditarietà.
I seguenti ruoli IAM predefiniti dispongono di autorizzazioni sulle routine.
Ruolo | Descrizione |
---|---|
Proprietario dati BigQuery
(roles/bigquery.dataOwner ) |
Se concesso per una routine, questo ruolo concede le seguenti autorizzazioni:
Non devi concedere il ruolo Proprietario dei dati a livello di routine. L'editor dei dati concede anche tutte le autorizzazioni per la routine ed è un ruolo con meno privilegi. |
Editor dati BigQuery
(roles/bigquery.dataEditor ) |
Se concesso per una routine, questo ruolo concede le seguenti autorizzazioni:
|
Visualizzatore dati BigQuery
(roles/bigquery.dataViewer ) |
Se concesso per una routine, questo ruolo concede le seguenti autorizzazioni:
|
BigQuery Metadata Viewer
(roles/bigquery.metadataViewer ) |
Se concesso per una routine, questo ruolo concede le seguenti autorizzazioni:
|
Autorizzazioni per le routine
La maggior parte delle autorizzazioni che iniziano con bigquery.routines
si applicano a livello di routine.
bigquery.routines.create
e bigquery.routines.list
non lo fanno. Per creare ed elencare le routine, devono essere concesse le autorizzazioni bigquery.routines.create
e bigquery.routines.list
a un ruolo nel contenitore padre, ovvero il set di dati.
La tabella seguente elenca tutte le autorizzazioni per le routine e la risorsa di livello più basso a cui possono essere concesse.
Autorizzazione | Risorsa | Descrizione |
---|---|---|
bigquery.routines.create |
Set di dati | Crea una routine nel set di dati. Questa autorizzazione richiede anche
bigquery.jobs.create per eseguire un job di query che contiene un'istruzione
CREATE FUNCTION . |
bigquery.routines.delete |
Routine | Elimina una routine. |
bigquery.routines.get |
Routine | Fare riferimento a una routine creata da un'altra persona. Questa autorizzazione richiede anche
bigquery.jobs.create per eseguire un job di query che
faccia riferimento alla routine. Inoltre, devi disporre dell'autorizzazione per accedere a qualsiasi risorsa
a cui fa riferimento la routine, ad esempio tabelle o viste. |
bigquery.routines.list |
Set di dati | Elenca le routine nel set di dati e mostra i metadati delle routine. |
bigquery.routines.update |
Routine | Aggiorna le definizioni e i metadati delle routine. |
bigquery.routines.getIamPolicy |
Routine | Ottieni i controlli di accesso per la routine. |
bigquery.routines.setIamPolicy |
Routine | Imposta i controlli dell'accesso per la routine. |
Visualizzare i controlli di accesso per una routine
Per visualizzare i controlli di accesso per una routine, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto, il set di dati, Routine e seleziona una routine.
Fai clic su
Condividi.I controlli di accesso della routine vengono visualizzati nel riquadro Condividi.
bq
Il comando bq get-iam-policy
non supporta la visualizzazione dei controlli
di accesso in una routine.
SQL
La
visualizzazione INFORMATION_SCHEMA.OBJECT_PRIVILEGES
non mostra i controlli di accesso per le routine.
API
Per recuperare la policy corrente, chiama il
metodo routines.getIamPolicy
.
Revocare l'accesso a una routine
Per revocare l'accesso a una routine, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto, un set di dati, Routine e seleziona una routine.
Nel riquadro dei dettagli, fai clic su Condivisione > Autorizzazioni.
Nella finestra di dialogo Autorizzazioni di routine, espandi l'entità di cui vuoi revocare l'accesso.
Fai clic su
Rimuovi entità.Nella finestra di dialogo Vuoi rimuovere il ruolo dall'entità?, fai clic su Rimuovi.
Fai clic su Chiudi.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per scrivere le informazioni sulle routine esistenti (inclusi i controlli dell'accesso) in un file JSON, utilizza il comando
bq get-iam-policy
:bq get-iam-policy --routine PROJECT_ID:DATASET.ROUTINE > PATH_TO_FILE
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET: il nome del set di dati che contiene la routine che vuoi aggiornare
- ROUTINE: il nome della risorsa da aggiornare
- PATH_TO_FILE: il percorso del file JSON sul computer locale
Nel file delle norme, il valore di
version
rimane1
. Questo numero si riferisce alla versione dello schema del criterio IAM, non alla versione del criterio. Il valore peretag
è il numero di versione del criterio.Apporta modifiche alla sezione
access
del file JSON. Puoi rimuovere una qualsiasi delle vocispecialGroup
:projectOwners
,projectWriters
,projectReaders
eallAuthenticatedUsers
. Puoi anche rimuovere uno dei seguenti elementi:userByEmail
,groupByEmail
edomain
.Ad esempio, la sezione
access
di un file JSON di una routine avrebbe il seguente aspetto:{ "bindings": [ { "role": "roles/bigquery.dataViewer", "members": [ "user:user@example.com", "group:group@example.com", "domain:google.com", ] }, ], "etag": "BwWWja0YfJA=", "version": 1 }
Per aggiornare la policy di accesso, utilizza il comando
bq set-iam-policy
:bq set-iam-policy --routine PROJECT_ID:DATASET.ROUTINE PATH_TO_FILE
Per verificare le modifiche controllo dell'accesso, utilizza di nuovo il comando
get-iam-policy
senza scrivere le informazioni in un file:bq get-iam-policy --routine --format=prettyjson PROJECT_ID:DATASET.ROUTINE
Per recuperare la policy corrente, chiama il metodo
routines.getIamPolicy
.Modifica la policy per aggiungere entità o associazioni oppure entrambe. Per il formato richiesto per le norme, consulta l'argomento di riferimento Norme.
API
Visualizzare i controlli dell'accesso ereditati per una risorsa
Puoi esaminare i ruoli IAM ereditati per una risorsa utilizzando l'interfaccia utente web di BigQuery. Devi disporre delle autorizzazioni appropriate per visualizzare l'ereditarietà nella console. Per esaminare l'ereditarietà per un set di dati, una tabella, una vista o una routine:
Nella console Trusted Cloud , vai alla pagina BigQuery.
Nel riquadro Explorer, seleziona il set di dati oppure espandi il set di dati e seleziona una tabella, una vista o una routine.
Per un set di dati, fai clic su Condivisione. Per una tabella, una visualizzazione o una routine, fai clic su Condividi.
Verifica che l'opzione Mostra ruoli ereditati nella tabella sia attiva.
Espandi un ruolo nella tabella.
Nella colonna Ereditarietà, l'icona esagonale indica se il ruolo è stato ereditato da una risorsa principale.
Negare l'accesso a una risorsa
I criteri di negazione IAM ti consentono di impostare sistemi di protezione per l'accesso alle risorse BigQuery. Puoi definire regole di negazione che impediscono alle entità selezionate di utilizzare determinate autorizzazioni, indipendentemente dai ruoli loro concessi.
Per informazioni su come creare, aggiornare ed eliminare le policy di negazione, consulta Nega l'accesso alle risorse.
Casi speciali
Considera i seguenti scenari quando crei criteri di negazione IAM per alcune autorizzazioni BigQuery:
L'accesso alle risorse autorizzate (viste, routine, set di dati, o stored procedure) ti consente di creare, eliminare> o manipolare una tabella, nonché di leggere e modificare i dati della tabella, anche se non disponi dell'autorizzazione diretta per eseguire queste operazioni. Può anche recuperare dati o metadati del modello e richiamare altre stored procedure nella tabella sottostante. Questa funzionalità implica che le risorse autorizzate dispongono delle seguenti autorizzazioni:
bigquery.tables.get
bigquery.tables.list
bigquery.tables.getData
bigquery.tables.updateData
bigquery.tables.create
bigquery.tables.delete
bigquery.routines.get
bigquery.routines.list
bigquery.datasets.get
bigquery.models.getData
bigquery.models.getMetadata
Per negare l'accesso a queste risorse autorizzate, aggiungi uno dei seguenti valori al campo
deniedPrincipal
quando crei il criterio di negazione:Valore Caso d'uso principalSet://goog/public:all
Blocca tutte le entità, incluse le risorse autorizzate. principalSet://bigquery.googleapis.com/projects/PROJECT_NUMBER/*
Blocca tutte le risorse BigQuery autorizzate nel progetto specificato. PROJECT_NUMBER
è un identificatore univoco generato automaticamente per il tuo progetto di tipoINT64
.Per esentare determinate entità dalla policy di negazione, specifica queste entità nel campo
exceptionPrincipals
della policy di negazione. Ad esempio:exceptionPrincipals: "principalSet://bigquery.googleapis.com/projects/1234/*"
.BigQuery memorizza nella cache i risultati delle query di un proprietario del job per 24 ore, a cui il proprietario del job può accedere senza bisogno dell'autorizzazione
bigquery.tables.getData
sulla tabella contenente i dati. Pertanto, l'aggiunta di un criterio di negazione IAM all'autorizzazionebigquery.tables.getData
non blocca l'accesso ai risultati memorizzati nella cache per il proprietario del job fino alla scadenza della cache. Per bloccare l'accesso del proprietario del job ai risultati memorizzati nella cache, crea una policy di negazione separata per l'autorizzazionebigquery.jobs.create
.Per impedire l'accesso involontario ai dati quando utilizzi le norme di negazione per bloccare le operazioni di lettura dei dati, ti consigliamo di esaminare e revocare anche gli abbonamenti esistenti al set di dati.
Per creare un criterio di rifiuto IAM per la visualizzazione dei controlli dell'accesso al set di dati, nega le seguenti autorizzazioni:
bigquery.datasets.get
bigquery.datasets.getIamPolicy
Per creare un criterio di negazione IAM per aggiornare i controlli dell'accesso al set di dati, nega le seguenti autorizzazioni:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
Passaggi successivi
Scopri come utilizzare il
metodo projects.testIamPermissions
per testare l'accesso degli utenti a una risorsa.