Ruoli e autorizzazioni IAM di BigQuery
Questo documento fornisce informazioni su ruoli e autorizzazioni di Identity and Access Management (IAM) per BigQuery. IAM ti consente di concedere l'accesso granulare a determinate risorse BigQuery e aiuta a impedire l'accesso ad altre risorse. IAM ti consente di applicare il principio di sicurezza del privilegio minimo, che afferma che nessuno deve disporre di più autorizzazioni di quelle di cui ha effettivamente bisogno.
Quando un'entità (un utente, un gruppo o un account di servizio) chiama un'API Google Cloud, deve disporre delle autorizzazioni IAM appropriate per utilizzare la risorsa. Per concedere a un'entità le autorizzazioni richieste, devi concederle un ruolo IAM.
Questo documento descrive come utilizzare i ruoli IAM predefiniti e personalizzati per consentire ai principali di accedere alle risorse BigQuery.
Per familiarizzare con la gestione dell'accesso in Google Cloud in generale, consulta la panoramica di IAM.
Tipi di ruoli IAM
Un ruolo è una raccolta di autorizzazioni. Puoi utilizzare i seguenti tipi di ruoli in IAM per fornire l'accesso alle risorse BigQuery:
- I ruoli predefiniti sono gestiti da Google Cloud e supportano i casi d'uso comuni e i pattern di controllo dell'accesso.
- I ruoli personalizzati forniscono accesso in base a un elenco di autorizzazioni specificato dall'utente.
Per determinare se una o più autorizzazioni sono incluse in un ruolo, puoi utilizzare uno tra i seguenti metodi:
- Il riferimento alla ricerca delle autorizzazioni IAM
- Il comando
gcloud iam roles describe
- Il metodo
roles.get()
nell'API IAM
Quando assegni più tipi di ruoli a un utente, le autorizzazioni concesse sono la combinazione delle autorizzazioni di ciascun ruolo.
Per ulteriori informazioni sull'utilizzo di IAM per accedere alle risorse, consulta Concedere, modificare e revocare l'accesso alle risorse nella documentazione di IAM.
Per informazioni sulla creazione di ruoli personalizzati, consulta Creare e gestire i ruoli personalizzati nella documentazione IAM.
Ruoli IAM in BigQuery
Le autorizzazioni non vengono assegnate direttamente a utenti, gruppi o account di servizio. Agli utenti, ai gruppi o agli account di servizio viene invece concesso l'accesso a uno o più ruoli predefiniti o personalizzati per concedergli le autorizzazioni per eseguire azioni sulle risorse.
Puoi concedere l'accesso ai seguenti livelli di risorse BigQuery:
- Organizzazioni, cartelle o progetti
- Connessioni
- Set di dati
- Tabelle o visualizzazioni
- Tag di criteri, criteri di accesso alle righe o criteri dei dati BigQuery
Ruoli applicati a livello di organizzazione o progetto Google Cloud
Quando assegni i ruoli a livello di organizzazione e progetto, fornisci l'autorizzazione per eseguire job BigQuery o per accedere a tutte le risorse BigQuery di un progetto.
Ruoli applicati a livello di set di dati
Puoi assegnare i ruoli a livello di set di dati per fornire l'accesso a un set di dati specifico, senza fornire l'accesso completo alle risorse del progetto. Nella gerarchia delle risorse IAM, i set di dati BigQuery sono risorse secondarie dei progetti. Per ulteriori informazioni sull'assegnazione dei ruoli a livello di set di dati, consulta Controllare l'accesso ai set di dati.
Ruoli applicati alle singole risorse all'interno dei set di dati
Puoi assegnare i ruoli singolarmente a determinati tipi di risorse all'interno dei set di dati, senza fornire l'accesso completo alle risorse del set di dati.
I ruoli possono essere applicati a singole risorse dei seguenti tipi:
- tabelle
- autorizzate
I ruoli non possono essere applicati a singole risorse dei seguenti tipi:
- routines
- modelli
Per ulteriori informazioni sull'assegnazione dei ruoli a livello di tabella o vista, consulta Controllare l'accesso a tabelle o viste.
Ruoli IAM predefiniti di BigQuery
La tabella seguente elenca i ruoli IAM BigQuery predefiniti con un elenco corrispondente di tutte le autorizzazioni incluse in ciascun ruolo. Tieni presente che ogni autorizzazione è applicabile a un determinato tipo di risorsa.
Role | Permissions |
---|---|
BigQuery Admin( Provides permissions to manage all resources within the project. Can manage all data within the project, and can cancel jobs from other users running within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Connection Admin(
|
|
BigQuery Connection User(
|
|
BigQuery Data Editor( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Owner( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to list all of the resources in the dataset (such as tables, views, snapshots, models, and routines) and to read their data and metadata with applicable APIs and in queries. When applied at the project or organization level, this role can also enumerate all datasets in the project. Additional roles, however, are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Filtered Data Viewer( Access to view filtered table data defined by a row access policy |
|
BigQuery Job User( Provides permissions to run jobs, including queries, within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Metadata Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role provides permissions to:
Additional roles are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Read Session User( Provides the ability to create and use read sessions. Lowest-level resources where you can grant this role:
|
|
BigQuery Resource Admin( Administers BigQuery workloads, including slot assignments, commitments, and reservations. |
|
BigQuery Resource Editor( Manages BigQuery workloads, but is unable to create or modify slot commitments. |
|
BigQuery Resource Viewer( Can view BigQuery workloads, but cannot create or modify slot reservations or commitments. |
|
BigQuery Studio Admin( Combination role of BigQuery Admin, Dataform Admin, Notebook Runtime Admin and Dataproc Serverless Editor. |
|
BigQuery Studio User( Combination role of BigQuery Job User, BigQuery Read Session User, Dataform Code Creator, Notebook Runtime User and Dataproc Serverless Editor. |
|
BigQuery User( When applied to a dataset, this role provides the ability to read the dataset's metadata and list tables in the dataset. When applied to a project, this role also provides the ability to run jobs, including queries,
within the project. A principal with this role can enumerate their own jobs, cancel their own jobs, and
enumerate datasets within a project. Additionally, allows the creation of new datasets within the
project; the creator is granted the BigQuery Data Owner role ( Lowest-level resources where you can grant this role:
|
|
BigQuery Data Policy Admin( Role for managing Data Policies in BigQuery |
|
Masked Reader( Masked read access to sub-resources tagged by the policy tag associated with a data policy, for example, BigQuery columns |
|
Raw Data Reader Beta( Raw read access to sub-resources associated with a data policy, for example, BigQuery columns |
|
BigQuery Data Policy Viewer( Role for viewing Data Policies in BigQuery |
|
Ruoli IAM personalizzati per BigQuery
Per creare un ruolo IAM personalizzato per BigQuery, segui i passaggi descritti per i ruoli IAM personalizzati utilizzando le autorizzazioni BigQuery.
Ruoli di base di BigQuery
Per informazioni sui ruoli di base di BigQuery, consulta Ruoli e autorizzazioni di base di BigQuery.
Autorizzazioni BigQuery
La tabella seguente descrive le autorizzazioni disponibili in BigQuery. Sono inclusi nei ruoli predefiniti e possono essere utilizzati nelle definizioni dei ruoli personalizzati.
Autorizzazione | Descrizione |
---|---|
bigquery.bireservations.get |
Leggi le prenotazioni di BI Engine. |
bigquery.bireservations.update |
Aggiorna le prenotazioni di BI Engine. |
bigquery.capacityCommitments.create |
Crea impegni di capacità nel progetto. |
bigquery.capacityCommitments.delete |
Elimina un impegno di capacità. |
bigquery.capacityCommitments.get |
Recupera i dettagli di un impegno di capacità. |
bigquery.capacityCommitments.list |
Elenca tutti gli impegni di capacità in un progetto. |
bigquery.capacityCommitments.update |
Aggiorna tutti gli impegni relativi alla capacità in un progetto. |
bigquery.config.update |
Crea una configurazione. |
bigquery.config.get |
Visualizza i dettagli di una configurazione. |
bigquery.connections.create |
Creare nuove connessioni in un progetto. |
bigquery.connections.delete |
Elimina una connessione. |
bigquery.connections.get |
Recupera i metadati della connessione. Le credenziali non sono incluse. |
bigquery.connections.list |
Elenca le connessioni in un progetto. |
bigquery.connections.update |
Aggiorna una connessione e le relative credenziali. |
bigquery.connections.updateTag |
Aggiorna i tag di una connessione. |
bigquery.connections.use |
Utilizza una configurazione di connessione per connetterti a un'origine dati remota. |
bigquery.connections.delegate |
Delega la connessione per creare funzioni remote e tabelle esterne autorizzate. |
bigquery.dataPolicies.create |
Creare nuovi criteri dei dati. |
bigquery.dataPolicies.delete |
Eliminare i criteri relativi ai dati. |
bigquery.dataPolicies.get |
Recupera i metadati relativi alle norme relative ai dati. |
bigquery.dataPolicies.getIamPolicy |
Leggi le autorizzazioni IAM di un criterio relativo ai dati. |
bigquery.dataPolicies.list |
Elenca i criteri dei dati in un progetto. |
bigquery.dataPolicies.maskedGet |
Visualizza i dati mascherati di una colonna con un tag di criteri associato a un criterio dei dati. |
bigquery.dataPolicies.setIamPolicy |
Imposta le autorizzazioni IAM di un criterio relativo ai dati. |
bigquery.dataPolicies.update |
Aggiornare i metadati di un criterio relativo ai dati. |
bigquery.datasets.create |
Crea nuovi set di dati vuoti. |
bigquery.datasets.createTagBinding |
Crea associazioni di tag delle risorse in un set di dati. |
bigquery.datasets.delete |
Eliminare un set di dati. |
bigquery.datasets.deleteTagBinding |
Elimina le associazioni di tag delle risorse in un set di dati. |
bigquery.datasets.get |
Recupera i metadati e le autorizzazioni di un set di dati.
Per visualizzare le autorizzazioni nella console Google Cloud è necessaria anche l'autorizzazione bigquery.datasets.getIamPolicy . |
bigquery.datasets.getIamPolicy |
Obbligatorio per la console Google Cloud per offrire all'utente la possibilità di ottenere le autorizzazioni IAM di un set di dati. Fail open. La possibilità di eseguire effettivamente l'operazione
di acquisizione delle autorizzazioni è limitata dall'autorizzazione bigquery.datasets.get . |
bigquery.datasets.link |
Crea un set di dati collegato. |
bigquery.datasets.listTagBindings |
Elenca le associazioni di tag delle risorse in un set di dati. |
bigquery.datasets.setIamPolicy |
Obbligatorio per la console Google Cloud per consentire all'utente di impostare le autorizzazioni IAM di un set di dati. Fail open. La possibilità di eseguire effettivamente l'operazione
di impostazione delle autorizzazioni è limitata dall'autorizzazione bigquery.datasets.update . |
bigquery.datasets.update |
Aggiorna i metadati e le autorizzazioni di un set di dati.
La concessione delle autorizzazioni nella console Google Cloud richiede anche l'autorizzazione bigquery.datasets.setIamPolicy . |
bigquery.datasets.updateTag |
Aggiorna i tag di Data Catalog per un set di dati. |
bigquery.jobs.create |
Esegui job (incluse query) all'interno del progetto. |
bigquery.jobs.get |
Recupera dati e metadati di qualsiasi job.1 |
bigquery.jobs.list |
Elenco di tutti i job e recupero dei metadati di qualsiasi job inviato da qualsiasi utente. Per i job inviati da altri utenti, i dettagli e i metadati vengono oscurati. |
bigquery.jobs.listAll |
Elenco di tutti i job e recupero dei metadati di qualsiasi job inviato da qualsiasi utente. |
bigquery.jobs.listExecutionMetadata |
Elenca tutti i metadati di esecuzione dei job (senza informazioni sensibili) su qualsiasi job inviato da qualsiasi utente. Può essere applicato solo a livello di organizzazione e viene utilizzato dall'interfaccia utente Amministrazione. |
bigquery.jobs.delete |
Elimina i metadati di un job. |
bigquery.jobs.update |
Annullare qualsiasi lavoro.1 |
bigquery.models.create |
Creare nuovi modelli di machine learning. |
bigquery.models.delete |
Elimina i modelli di machine learning. |
bigquery.models.getData |
Recupera i dati del modello di machine learning. Per ottenere i metadati del modello, hai bisogno di
bigquery.models.getMetadata . |
bigquery.models.getMetadata |
Recupera i metadati del modello di machine learning. Per ottenere i dati del modello, hai bisogno di
bigquery.models.getData . |
bigquery.models.list |
Elenca i modelli di machine learning e i metadati dei modelli. |
bigquery.models.updateData |
Aggiorna i dati del modello di machine learning. Per aggiornare i metadati del modello, hai bisogno di
bigquery.models.updateMetadata . |
bigquery.models.updateMetadata |
Aggiorna i metadati del modello di machine learning. Per aggiornare i dati del modello, hai bisogno di
bigquery.models.updateData . |
bigquery.models.export |
Esportare modelli di machine learning. |
bigquery.models.updateTag |
Aggiorna i tag di Data Catalog per un modello. |
bigquery.readsessions.create |
Crea una nuova sessione di lettura utilizzando l'API Storage Read. |
bigquery.readsessions.getData |
Leggi i dati da una sessione di lettura utilizzando l'API Storage Read. |
bigquery.readsessions.update |
Aggiorna una sessione di lettura utilizzando l'API Storage Read. |
bigquery.reservations.create |
Crea una prenotazione di slot in un progetto di amministrazione. |
bigquery.reservations.delete |
Eliminare una prenotazione di uno slot. |
bigquery.reservations.get |
Recupera i dettagli di una prenotazione di uno slot. |
bigquery.reservations.list |
Elenca tutte le prenotazioni di slot in un progetto di amministrazione. |
bigquery.reservations.update |
Aggiorna le proprietà di una prenotazione di uno spazio. |
bigquery.reservationAssignments.create |
Crea un'assegnazione di prenotazione.
Questa autorizzazione è obbligatoria per il progetto del proprietario e la risorsa dell'assegnatario. |
bigquery.reservationAssignments.delete |
Elimina un'assegnazione di prenotazione.
Questa autorizzazione è obbligatoria per il progetto proprietario e la risorsa assegnata. |
bigquery.reservationAssignments.list |
Elenca tutte le assegnazioni di prenotazione in un progetto. |
bigquery.reservationAssignments.search |
Trova un'assegnazione di prenotazione per un determinato progetto, una cartella o un'organizzazione. |
bigquery.rowAccessPolicies.create |
Crea una nuova policy di accesso a livello di riga in una tabella. |
bigquery.rowAccessPolicies.delete |
Elimina un criterio di accesso a livello di riga da una tabella. |
bigquery.rowAccessPolicies.getFilteredData |
Recupera i dati di una tabella che vuoi che siano visibili solo ai principali nell'elenco dei beneficiari di un criterio di accesso a livello di riga. Consigliamo di concedere questa autorizzazione solo a una risorsa dei criteri di accesso a livello di riga. |
bigquery.rowAccessPolicies.list |
Elenca tutti i criteri di accesso a livello di riga di una tabella. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Accedi ai dati storici di una tabella che ha o ha avuto in precedenza criteri di accesso a livello di riga. |
bigquery.rowAccessPolicies.getIamPolicy |
Recupera le autorizzazioni IAM di un criterio di accesso riga. |
bigquery.rowAccessPolicies.setIamPolicy |
Imposta le autorizzazioni IAM del criterio di accesso riga. |
bigquery.rowAccessPolicies.update |
Ricrea un criterio di accesso a livello di riga. |
bigquery.routines.create |
Creare nuove routine (funzioni e procedure archiviate). |
bigquery.routines.delete |
Eliminare le routine. |
bigquery.routines.get |
Recupera le definizioni e i metadati delle routine. |
bigquery.routines.list |
Elenca le routine e i metadati delle routine. |
bigquery.routines.update |
Aggiorna le definizioni e i metadati delle routine. |
bigquery.routines.updateTag |
Aggiorna i tag di Data Catalog per una routine. |
bigquery.savedqueries.create |
Creare query salvate. |
bigquery.savedqueries.delete |
Elimina le query salvate. |
bigquery.savedqueries.get |
Recupera i metadati delle query salvate. |
bigquery.savedqueries.list |
Elenca le query salvate. |
bigquery.savedqueries.update |
Aggiorna le query salvate. |
bigquery.tables.create |
Creare nuove tabelle. |
bigquery.tables.createIndex |
Creare indici di ricerca nelle tabelle. |
bigquery.tables.createSnapshot
|
Creare nuovi snapshot delle tabelle. |
bigquery.tables.createTagBinding
|
Crea associazioni di tag delle risorse in una tabella. |
bigquery.tables.delete |
Elimina le tabelle. |
bigquery.tables.deleteIndex |
Elimina gli indici di ricerca dalle tabelle. |
bigquery.tables.deleteSnapshot
|
Elimina gli snapshot delle tabelle. |
bigquery.tables.deleteTagBinding
|
Elimina le associazioni di tag delle risorse in una tabella. |
bigquery.tables.export |
Esporta i dati della tabella da BigQuery. |
bigquery.tables.get |
Recupera i metadati della tabella. Per recuperare i dati della tabella, devi avere bigquery.tables.getData . |
bigquery.tables.getData |
Recupera i dati della tabella. Questa autorizzazione è necessaria per eseguire query sui dati delle tabelle. Per ottenere i metadati della tabella, devi disporre di bigquery.tables.get . |
bigquery.tables.getIamPolicy |
Leggi il criterio IAM di una tabella. |
bigquery.tables.list |
Elenca tabelle e metadati delle tabelle. |
bigquery.tables.listEffectiveTags |
Elenca le associazioni di tag efficaci
con l'API Cloud Resource Manager. Viene selezionato quando viene utilizzato il flag --effective . |
bigquery.tables.listTagBindings |
Elenca le associazioni dei tag con l'API Cloud Resource Manager. |
bigquery.tables.replicateData |
Replicare i dati della tabella. Questa autorizzazione è necessaria per creare viste materializzate delle repliche. |
bigquery.tables.restoreSnapshot
|
Ripristina gli snapshot delle tabelle. |
bigquery.tables.setCategory |
Imposta i tag delle norme nello schema della tabella. |
bigquery.tables.setIamPolicy |
Modifica il criterio IAM di una tabella. |
bigquery.tables.update |
Aggiorna i metadati della tabella. |
bigquery.tables.updateData |
Aggiorna i dati della tabella. |
bigquery.tables.updateTag |
Aggiorna i tag di Data Catalog per una tabella. |
bigquery.transfers.get |
Recupera i metadati di trasferimento. |
bigquery.transfers.update |
Crea, aggiorna ed elimina i trasferimenti. |
1 Per qualsiasi job creato, disponi automaticamente dell'equivalente delle autorizzazioni bigquery.jobs.get
e bigquery.jobs.update
per quel job.
Autorizzazioni per le attività BigQuery ML
La tabella seguente descrive le autorizzazioni necessarie per le attività comuni di BigQuery ML.
Autorizzazione | Descrizione |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
Crea un nuovo modello utilizzando l'istruzione CREATE MODEL |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
Sostituire un modello esistente utilizzando l'istruzione CREATE OR REPLACE MODEL |
bigquery.models.delete |
Eliminare il modello utilizzando l'API models.delete |
bigquery.jobs.create bigquery.models.delete |
Eliminare il modello utilizzando l'istruzione DROP MODEL |
bigquery.models.getMetadata |
Recuperare i metadati del modello utilizzando l'API models.get |
bigquery.models.list |
Elenca i modelli e i metadati dei modelli utilizzando l'API models.list |
bigquery.models.updateMetadata |
Aggiorna i metadati del modello utilizzando l'API models.delete. Se imposti o aggiorni un'ora di scadenza diversa da zero per il modello, è necessaria anche l'autorizzazione bigquery.models.delete |
bigquery.jobs.create bigquery.models.getData
|
Esegui valutazioni, previsioni e ispezioni di modelli e funzionalità utilizzando funzioni come
ML.EVALUATE , ML.PREDICT , ML.TRAINING_INFO e
ML.WEIGHTS . |
bigquery.jobs.create bigquery.models.export
|
Esportazione di un modello |
bigquery.models.updateTag |
Aggiorna i tag di Data Catalog per un modello. |
Passaggi successivi
- Per ulteriori informazioni sull'assegnazione dei ruoli a livello di set di dati, consulta Controllare l'accesso ai set di dati.
- Per ulteriori informazioni sull'assegnazione dei ruoli a livello di tabella o vista, consulta Controllare l'accesso a tabelle e viste.