Identity and Access Management (IAM) consente di controllare l'accesso di utenti e gruppi a Risorse Spanner nel progetto, nell'istanza Spanner Livelli di database Spanner. Ad esempio, puoi specificare che un utente di un database specifico in un'istanza specifica del progetto, ma non possono creare, modificare o eliminare nessuna istanza nel tuo progetto. Utilizzo il controllo dell'accesso con IAM consente di concedere un'autorizzazione a un utente o a un gruppo senza dover modificare ogni autorizzazione di database o istanza Spanner singolarmente.
Questo documento è incentrato sulle autorizzazioni IAM pertinenti Spanner e i ruoli IAM che concedono queste autorizzazioni. Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta le Guida per gli sviluppatori di Identity and Access Management. In particolare, controlla le sue Sezione Gestione dei criteri IAM:
Autorizzazioni
Le autorizzazioni consentono agli utenti di eseguire azioni specifiche su Spanner
Google Cloud. Ad esempio, l'autorizzazione spanner.databases.read
consente a un utente di
legge da un database utilizzando l'API di lettura di Spanner,
spanner.databases.select
consente a un utente di eseguire un'istruzione SQL select su un
per configurare un database. Non concedi direttamente le autorizzazioni agli utenti, concediamo loro
ruoli predefiniti o ruoli personalizzati, che hanno uno o più
più autorizzazioni raggruppate al loro interno.
Le seguenti tabelle elencano le autorizzazioni IAM associate a Spanner.
Configurazioni istanza
Le seguenti autorizzazioni si applicano all'istanza Spanner configurazioni. Per saperne di più, consulta i riferimenti per la configurazione dell'istanza per REST e RPC su quelle di livello inferiore.
Nome autorizzazione di configurazione istanza | Descrizione |
---|---|
spanner.instanceConfigs.create |
Creare una configurazione dell'istanza personalizzata. |
spanner.instanceConfigs.delete |
Elimina una configurazione di istanza personalizzata. |
spanner.instanceConfigs.get |
Ottieni una configurazione dell'istanza. |
spanner.instanceConfigs.list |
Elenca l'insieme di configurazioni delle istanze. |
spanner.instanceConfigs.update |
Aggiorna la configurazione di un'istanza personalizzata. |
Operazioni di configurazione dell'istanza
Le seguenti autorizzazioni si applicano alla configurazione dell'istanza Spanner operazioni. Per ulteriori informazioni, consulta i riferimenti all'istanza REST e RPC su quelle di livello inferiore.
Nome autorizzazione per l'operazione di configurazione dell'istanza | Descrizione |
---|---|
spanner.instanceConfigOperations.list |
Elencare le operazioni di configurazione dell'istanza. |
spanner.instanceConfigOperations.get |
Ottieni un'operazione specifica di configurazione dell'istanza. |
spanner.instanceConfigOperations.cancel |
Annullare un'operazione di configurazione dell'istanza. |
spanner.instanceConfigOperations.delete |
Eliminare un'operazione di configurazione dell'istanza. |
Istanze
Le seguenti autorizzazioni si applicano alle istanze Spanner. Per maggiori informazioni informazioni, consulta i riferimenti all'istanza per REST e RPC su quelle di livello inferiore.
Nome autorizzazione istanza | Descrizione |
---|---|
spanner.instances.create |
Crea un'istanza. |
spanner.instances.list |
Elenca le istanze. |
spanner.instances.get |
Ottieni la configurazione di un'istanza specifica. |
spanner.instances.getIamPolicy |
Ottieni il criterio IAM di un'istanza. |
spanner.instances.update |
Aggiorna un'istanza. |
spanner.instances.setIamPolicy |
Imposta il criterio IAM di un'istanza. |
spanner.instances.delete |
Eliminare un'istanza. |
Operazioni istanza
Le seguenti autorizzazioni si applicano alle operazioni delle istanze Spanner. Per ulteriori informazioni, consulta i riferimenti all'istanza REST e RPC su quelle di livello inferiore.
Nome autorizzazione per le operazioni dell'istanza | Descrizione |
---|---|
spanner.instanceOperations.list |
Elencare le operazioni dell'istanza. |
spanner.instanceOperations.get |
Ottieni un'operazione specifica dell'istanza. |
spanner.instanceOperations.cancel |
Annullare un'operazione dell'istanza. |
spanner.instanceOperations.delete |
Eliminare un'operazione sull'istanza. |
Partizioni
Le seguenti autorizzazioni si applicano alle partizioni Spanner. Per maggiori informazioni informazioni, consulta i riferimenti alle partizioni per REST e RPC su quelle di livello inferiore.
Nome autorizzazione istanza | Descrizione |
---|---|
spanner.instancePartitions.create |
Crea una partizione. |
spanner.instancePartitions.get |
Ottieni la configurazione di una partizione specifica. |
spanner.instancePartitions.list |
Elenca le partizioni. |
spanner.instancePartitions.update |
Aggiorna una partizione. |
spanner.instancePartitions.delete |
Eliminare una partizione. |
Operazioni di partizione
Le seguenti autorizzazioni si applicano alle operazioni di partizione di Spanner. Per ulteriori informazioni, consulta i riferimenti alla partizione dell'istanza per API REST e RPC.
Nome autorizzazione per l'operazione di partizione dell'istanza | Descrizione |
---|---|
spanner.instancePartitionOperations.list |
Elencare le operazioni di partizione. |
spanner.instancePartitionOperations.get |
Ottieni un'operazione di partizione specifica. |
spanner.instancePartitionOperations.cancel |
Annullare un'operazione di partizione. |
spanner.instancePartitionOperations.delete |
Eliminare un'operazione di partizione. |
Database
Le seguenti autorizzazioni si applicano ai database Spanner. Per maggiori informazioni informazioni, consulta i riferimenti del database per REST e RPC su quelle di livello inferiore.
Nome autorizzazione database | Descrizione |
---|---|
spanner.databases.beginPartitionedDmlTransaction |
Eseguire un'istruzione DML (Partitioned Data Manipulation Language). |
spanner.databases.create |
Creare un database. |
spanner.databases.createBackup |
Crea un backup dal database. Richiede inoltre spanner.backups.create per creare la risorsa di backup. |
spanner.databases.list |
Elenca i database. |
spanner.databases.update |
Aggiorna i metadati di un database. |
spanner.databases.updateDdl |
Aggiorna lo schema di un database. |
spanner.databases.get |
Recupera i metadati di un database. |
spanner.databases.getDdl |
Ottieni lo schema di un database. |
spanner.databases.getIamPolicy |
Ottieni il criterio IAM di un database. |
spanner.databases.setIamPolicy |
Impostare il criterio IAM di un database. |
spanner.databases.beginReadOnlyTransaction |
Avvia una transazione di sola lettura su un database Spanner. |
spanner.databases.beginOrRollbackReadWriteTransaction |
Avvia o esegui il rollback di una transazione di lettura-scrittura su un database Spanner. |
spanner.databases.read |
Leggi da un database utilizzando l'API Read. |
spanner.databases.select |
Eseguire un'istruzione SQL select su un database. |
spanner.databases.write |
Scrivi in un database. |
spanner.databases.drop |
Trascina un database. |
spanner.databases.useRoleBasedAccess |
Utilizza il controllo dell'accesso granulare. |
spanner.databases.useDataBoost |
Utilizza le risorse di computing di Spanner Data Boost per elaborare le query partizionate. |
Ruoli database
Le seguenti autorizzazioni si applicano ai ruoli database di Spanner. Per ulteriori informazioni, consulta i riferimenti di database per REST e RPC su quelle di livello inferiore.
Nome autorizzazione ruolo database | Descrizione |
---|---|
spanner.databaseRoles.list |
Elenca i ruoli del database. |
spanner.databaseRoles.use |
Utilizza un ruolo del database specificato. |
Operazioni del database
Le seguenti autorizzazioni si applicano alle operazioni di database di Spanner. Per ulteriori informazioni, consulta i riferimenti di database per REST e RPC su quelle di livello inferiore.
Nome autorizzazione per le operazioni database | Descrizione |
---|---|
spanner.databaseOperations.list |
Elencare le operazioni di database e ripristino. |
spanner.databaseOperations.get |
Recuperare un'operazione di database specifica. |
spanner.databaseOperations.cancel |
Annullare un'operazione di database. |
Backup
Le seguenti autorizzazioni si applicano ai backup di Spanner. Per maggiori informazioni informazioni, consulta i riferimenti ai backup per REST e RPC su quelle di livello inferiore.
Nome autorizzazione di backup | Descrizione |
---|---|
spanner.backups.create |
Creazione backup Richiede anche spanner.databases.createBackup sul database di origine. |
spanner.backups.get |
Ottieni un backup. |
spanner.backups.update |
Aggiorna un backup. |
spanner.backups.delete |
Eliminare un backup. |
spanner.backups.list |
Elenca i backup. |
spanner.backups.restoreDatabase |
Ripristina il database da un backup. Richiede inoltre spanner.databases.create per creare il database ripristinato nell'istanza di destinazione. |
spanner.backups.getIamPolicy |
Ottieni il criterio IAM di un backup. |
spanner.backups.setIamPolicy |
Imposta il criterio IAM di un backup. |
Operazioni di backup
Le seguenti autorizzazioni si applicano alle operazioni di backup di Spanner. Per ulteriori informazioni, consulta i riferimenti di database per REST e le API RPC.
Nome autorizzazione per l'operazione di backup | Descrizione |
---|---|
spanner.backupOperations.list |
Elenca le operazioni di backup. |
spanner.backupOperations.get |
Ottieni un'operazione di backup specifica. |
spanner.backupOperations.cancel |
Annulla un'operazione di backup. |
Sessioni
Le seguenti autorizzazioni si applicano alle sessioni Spanner. Per maggiori informazioni informazioni, consulta i riferimenti del database per REST e le API RPC.
Nome autorizzazione sessione | Descrizione |
---|---|
spanner.sessions.create |
Crea una sessione. |
spanner.sessions.get |
Ottieni una sessione. |
spanner.sessions.delete |
Eliminare una sessione. |
spanner.sessions.list |
Elenca le sessioni. |
Ruoli predefiniti
Un ruolo predefinito è un pacchetto di una o più autorizzazioni. Per
Ad esempio, il ruolo predefinito roles/spanner.databaseUser
contiene
le autorizzazioni spanner.databases.read
e spanner.databases.write
. Esistono
due tipi di ruoli predefiniti per Spanner:
- Ruoli persona: vengono concessi a utenti o gruppi, per consentire loro di eseguire azioni sulle risorse del tuo progetto.
- Ruoli macchina: concessi agli account di servizio, che consente alle macchine in esecuzione per eseguire azioni sulle risorse del tuo progetto.
La tabella seguente elenca il controllo dell'accesso con i ruoli IAM predefiniti, tra cui un delle autorizzazioni associate a ciascun ruolo:
Role | Permissions |
---|---|
Cloud Spanner Admin( Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Backup Admin( A principal with this role can:
This role cannot restore a database from a backup. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Backup Writer( This role is intended to be used by scripts that automate backup creation. A principal with this role can create backups, but cannot update or delete them. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Admin( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Reader( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Role User( In conjunction with the IAM role Cloud Spanner Fine-grained Access User, grants permissions to individual Spanner database roles. Add a condition for each desired Spanner database role that includes the resource type of `spanner.googleapis.com/DatabaseRole` and the resource name ending with `/YOUR_SPANNER_DATABASE_ROLE`. |
|
Cloud Spanner Database User( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Fine-grained Access User( Grants permissions to use Spanner's fine-grained access control framework. To grant access to specific database roles, also add the `roles/spanner.databaseRoleUser` IAM role and its necessary conditions. |
|
Cloud Spanner Restore Admin( A principal with this role can restore databases from backups. If you need to restore a backup to a different instance, apply this role at the project level or to both instances. This role cannot create backups. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Viewer( A principal with this role can:
For example, you can combine this role with the This role is recommended at the Google Cloud project level for users interacting with Cloud Spanner resources in the Google Cloud console. Lowest-level resources where you can grant this role:
|
|
Ruoli di base
I ruoli di base sono ruoli a livello di progetto precedenti a IAM. Consulta Ruoli di base per ulteriori dettagli.
Sebbene Spanner supporti i seguenti ruoli di base, utilizza, se possibile, uno dei ruoli predefiniti mostrati in precedenza. Ruoli di base Includere autorizzazioni ampie che si applicano a tutte le tue risorse Google Cloud; nel i ruoli predefiniti di Spanner includono l'accesso che si applicano solo a Spanner.
Ruolo di base | Descrizione |
---|---|
roles/viewer |
Può elencare e ottenere i metadati di schemi e istanze. Può anche leggere ed eseguire query su un database utilizzando SQL. |
roles/editor |
Può fare tutto ciò che può fare un roles/viewer . Può anche creare istanze e database e scrivere dati in un database. |
roles/owner |
Può fare tutto ciò che può fare un roles/editor . Può anche modificare l'accesso a database e istanze. |
Ruoli personalizzati
Se i ruoli predefiniti per Spanner non sono adatti ai tuoi requisiti aziendali, puoi definire ruoli personalizzati con da te specificati.
Prima di creare un ruolo personalizzato, devi identificare le attività di cui hai bisogno per l'esecuzione. Puoi quindi identificare le autorizzazioni richieste ogni attività e aggiungi queste autorizzazioni al ruolo personalizzato.
Ruoli personalizzati per le attività degli account di servizio
Per la maggior parte delle attività, è ovvio quali autorizzazioni aggiungere
ruolo. Ad esempio, se vuoi che il tuo account di servizio possa creare un'istanza
un database, aggiungi l'autorizzazione spanner.databases.create
al tuo ruolo personalizzato.
Tuttavia, quando leggi o scrivi dati in una tabella Spanner, devi aggiungere autorizzazioni diverse al tuo ruolo personalizzato. Le seguenti mostra le autorizzazioni necessarie per leggere e scrivere i dati.
Attività account di servizio | Autorizzazioni obbligatorie |
---|---|
Lettura di dati |
spanner.databases.select
|
Inserire, aggiornare o eliminare i dati |
spanner.databases.beginOrRollbackReadWriteTransaction
|
Crea backup |
spanner.backups.create
|
Ripristina un database |
spanner.databases.create
|
Ruoli personalizzati per le attività della console Google Cloud
Per identificare l'elenco di autorizzazioni necessarie per una determinata attività nel Nella console Google Cloud, potrai determinare il flusso di lavoro per l'attività e compilare le autorizzazioni per quel flusso di lavoro. Ad esempio, per visualizzare i dati in una devi seguire questi passaggi nella console Google Cloud:
Passaggio | Autorizzazioni |
---|---|
1. Accedi al progetto | resourcemanager.projects.get |
2. Visualizza l'elenco delle istanze | spanner.instances.list |
3. Seleziona un'istanza | spanner.instances.get |
4. Visualizza l'elenco dei database | spanner.databases.list |
5. Seleziona un database e una tabella | spanner.databases.getDdl |
6. Visualizzare i dati in una tabella | spanner.databases.select , spanner.sessions.create , spanner.sessions.delete |
In questo esempio, sono necessarie le seguenti autorizzazioni:
resourcemanager.projects.get
spanner.databases.getDdl
spanner.databases.list
spanner.databases.select
spanner.instances.get
spanner.instances.list
spanner.sessions.create
spanner.sessions.delete
La tabella seguente elenca le autorizzazioni necessarie per azioni nella console Google Cloud.
Azione | Autorizzazioni |
---|---|
Visualizza l'elenco di istanze nella pagina Istanze |
|
Visualizza l'elenco nella scheda Autorizzazioni della pagina Istanza |
|
Aggiungi entità nella scheda Autorizzazioni della pagina Istanza |
|
Seleziona un'istanza dall'elenco per visualizzare la pagina Dettagli istanza |
|
Crea un'istanza |
|
Elimina un'istanza |
|
Modifica di un'istanza |
|
Crea una partizione |
|
Elimina una partizione |
|
Modificare una partizione |
|
Visualizza i grafici nella scheda Monitora della pagina Dettagli istanza o nella pagina Dettagli database |
|
Visualizza l'elenco di database nella pagina Dettagli istanza |
|
Visualizza l'elenco nella scheda Autorizzazioni della pagina Dettagli database |
|
Aggiungi entità nella scheda Autorizzazioni della pagina Dettagli database |
|
Seleziona un database dall'elenco e visualizza lo schema nella pagina Dettagli database |
|
Crea un database |
|
Elimina un database |
|
Creare una tabella Aggiorna uno schema della tabella |
|
Visualizza i dati nella scheda Dati della pagina Dettagli database Creare ed eseguire una query |
|
Modificare i dati in una tabella |
|
Visualizzare la pagina Backup/Ripristino |
|
Visualizza l'elenco delle operazioni di backup |
|
Visualizza l'elenco delle operazioni di ripristino |
|
Crea backup |
|
Ripristina un database da un backup |
|
Aggiornare un backup |
|
Eliminare un backup |
|
Gestione dei criteri IAM di Spanner
Puoi ottenere, impostare e testare i criteri IAM utilizzando le API REST o RPC su Risorse di backup, database e istanza Spanner.
Istanze
API REST | API RPC |
---|---|
projects.instances.getIamPolicy |
GetIamPolicy |
projects.instances.setIamPolicy |
SetIamPolicy |
projects.instances.testIamPermissions |
TestIamPermissions |
Database
API REST | API RPC |
---|---|
projects.instances.databases.getIamPolicy |
GetIamPolicy |
projects.instances.databases.setIamPolicy |
SetIamPolicy |
projects.instances.databases.testIamPermissions |
TestIamPermissions |
Backup
API REST | API RPC |
---|---|
projects.instances.backups.getIamPolicy |
GetIamPolicy |
projects.instances.backups.setIamPolicy |
SetIamPolicy |
projects.instances.backups.testIamPermissions |
TestIamPermissions |
Passaggi successivi
- Scopri di più su Identity and Access Management.
- Scopri come applicare ruoli IAM per un database Spanner o un progetto Google Cloud.
- Scopri come controllare l'accesso alle risorse Google Cloud, inclusi Spanner, da internet.