A gestão de identidade e de acesso (IAM) permite-lhe controlar o acesso de utilizadores e grupos aos recursos do Spanner ao nível do projeto, da instância do Spanner e da base de dados do Spanner. Por exemplo, pode especificar que um utilizador tem controlo total de uma base de dados específica numa instância específica no seu projeto, mas não pode criar, modificar nem eliminar instâncias no seu projeto. A utilização do controlo de acesso com o IAM permite-lhe conceder uma autorização a um utilizador ou a um grupo sem ter de modificar individualmente cada autorização da base de dados ou da instância do Spanner.
Este documento centra-se nas autorizações do IAM relevantes para o Spanner e nas funções do IAM que concedem essas autorizações. Para uma descrição detalhada do IAM e das respetivas funcionalidades, consulte o guia do programador Identity and Access Management. Em particular, consulte a secção Gerir políticas de IAM.
Autorizações
As autorizações permitem que os utilizadores realizem ações específicas em recursos do Spanner. Por exemplo, a autorização spanner.databases.read permite que um utilizador leia a partir de uma base de dados através da API de leitura do Spanner, enquanto a autorização spanner.databases.select permite que um utilizador execute uma declaração SQL select numa base de dados. Não concede autorizações diretamente aos utilizadores. Em alternativa, atribui-lhes funções predefinidas ou funções personalizadas, que têm uma ou mais autorizações incluídas.
As tabelas seguintes indicam as autorizações de IAM associadas ao Spanner.
Configurações da instância
As seguintes autorizações aplicam-se às configurações da instância do Spanner. Para mais informações, consulte as referências de configuração de instâncias das APIs REST e RPC.
| Nome da autorização de configuração da instância | Descrição |
|---|---|
spanner.instanceConfigs.create |
Crie uma configuração de instância personalizada. |
spanner.instanceConfigs.delete |
Elimine uma configuração de instância personalizada. |
spanner.instanceConfigs.get |
Obtenha uma configuração de instância. |
spanner.instanceConfigs.list |
Apresente a lista do conjunto de configurações de instâncias. |
spanner.instanceConfigs.update |
Atualize uma configuração de instância personalizada. |
Operações de configuração da instância
As seguintes autorizações aplicam-se às operações de configuração da instância do Spanner. Para mais informações, consulte as referências de instâncias para as APIs REST e RPC.
| Nome da autorização da operação de configuração da instância | Descrição |
|---|---|
spanner.instanceConfigOperations.cancel |
Cancele uma operação de configuração de instância. |
spanner.instanceConfigOperations.delete |
Elimine uma operação de configuração de instância. |
spanner.instanceConfigOperations.get |
Obtenha uma operação de configuração de instância. |
spanner.instanceConfigOperations.list |
Apresentar operações de configuração de instâncias. |
Instâncias
As seguintes autorizações aplicam-se a instâncias do Spanner. Para mais informações, consulte as referências de instâncias para as APIs REST e RPC.
| Nome da autorização da instância | Descrição |
|---|---|
spanner.instances.create |
Crie uma instância. |
spanner.instances.delete |
Elimine uma instância. |
spanner.instances.get |
Obter a configuração de uma instância específica. |
spanner.instances.getIamPolicy |
Obtenha a Política IAM de uma instância. |
spanner.instances.list |
Apresentar instâncias. |
spanner.instances.setIamPolicy |
Definir a Política IAM de uma instância. |
spanner.instances.update |
Atualize uma instância. |
Operações da instância
As seguintes autorizações aplicam-se às operações de instâncias do Spanner. Para mais informações, consulte as referências de instâncias para as APIs REST e RPC.
| Nome da autorização de operação da instância | Descrição |
|---|---|
spanner.instanceOperations.cancel |
Cancele uma operação de instância. |
spanner.instanceOperations.delete |
Eliminar uma operação de instância. |
spanner.instanceOperations.get |
Obtenha uma operação de instância específica. |
spanner.instanceOperations.list |
Apresentar operações de instâncias. |
Partições de instâncias
As seguintes autorizações aplicam-se às partições de instâncias do Spanner. Para mais informações, consulte as referências de partição de instâncias para as APIs REST e RPC.
| Nome da autorização da instância | Descrição |
|---|---|
spanner.instancePartitions.create |
Crie uma partição de instância. |
spanner.instancePartitions.delete |
Elimine uma partição de instância. |
spanner.instancePartitions.get |
Obtenha a configuração de uma partição de instância específica. |
spanner.instancePartitions.list |
Apresentar partições de instâncias. |
spanner.instancePartitions.update |
Atualize uma partição de instância. |
Operações de partição de instâncias
As seguintes autorizações aplicam-se às operações de partição de instâncias do Spanner. Para mais informações, consulte as referências de partição de instâncias para as APIs REST e RPC.
| Nome da autorização da operação de partição da instância | Descrição |
|---|---|
spanner.instancePartitionOperations.cancel |
Cancele uma operação de partição de instância. |
spanner.instancePartitionOperations.delete |
Elimine uma operação de partição de instância. |
spanner.instancePartitionOperations.get |
Obtenha uma operação de partição de instância específica. |
spanner.instancePartitionOperations.list |
Apresente as operações de partição de instâncias. |
Bases de dados
As seguintes autorizações aplicam-se às bases de dados do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização da base de dados | Descrição |
|---|---|
spanner.databases.adapt |
Permite que a API Spanner Adapter interaja diretamente com o Spanner. |
spanner.databases.beginOrRollbackReadWriteTransaction |
Inicie ou reverta uma transação de leitura/escrita numa base de dados do Spanner. |
spanner.databases.beginPartitionedDmlTransaction |
Executar uma instrução de linguagem de manipulação de dados (DML) particionada por instância. Para mais informações sobre consultas particionadas por instâncias, consulte o artigo Leia dados em paralelo. |
spanner.databases.beginReadOnlyTransaction |
Começar uma transação só de leitura numa base de dados do Spanner. |
spanner.databases.create |
Crie uma base de dados. |
spanner.databases.createBackup |
Crie uma cópia de segurança a partir da base de dados. Também requer que spanner.backups.create crie o recurso de cópia de segurança. |
spanner.databases.drop |
Eliminar uma base de dados. |
spanner.databases.get |
Obtenha os metadados de uma base de dados. |
spanner.databases.getDdl |
Obtenha o esquema de uma base de dados. |
spanner.databases.getIamPolicy |
Obtenha a Política IAM de uma base de dados. |
spanner.databases.list |
Listar bases de dados. |
spanner.databases.read |
Ler a partir de uma base de dados através da API de leitura. |
spanner.databases.select |
Executar uma declaração SQL select numa base de dados. |
spanner.databases.setIamPolicy |
Definir a Política IAM de uma base de dados. |
spanner.databases.update |
Atualize os metadados de uma base de dados. |
spanner.databases.updateDdl |
Atualizar o esquema de uma base de dados. |
spanner.databases.useDataBoost |
Use os recursos de computação do Spanner Data Boost para processar consultas particionadas por instâncias. |
spanner.databases.useRoleBasedAccess |
Use o controlo de acesso detalhado. |
spanner.databases.write |
Escrever numa base de dados. |
Funções da base de dados
As seguintes autorizações aplicam-se às funções da base de dados do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização da função da base de dados | Descrição |
|---|---|
spanner.databaseRoles.list |
Apresentar funções da base de dados. |
spanner.databaseRoles.use |
Usar uma função de base de dados especificada. |
Operações de base de dados
As seguintes autorizações aplicam-se às operações da base de dados do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização da operação da base de dados | Descrição |
|---|---|
spanner.databaseOperations.cancel |
Cancelar uma operação de base de dados. |
spanner.databaseOperations.get |
Obtenha uma operação de base de dados específica. |
spanner.databaseOperations.list |
Apresentar operações de base de dados e restaurar base de dados. |
Cópias de segurança
As seguintes autorizações aplicam-se às cópias de segurança do Spanner. Para mais informações, consulte as referências de cópias de segurança para as APIs REST e RPC.
| Nome da autorização de cópia de segurança | Descrição |
|---|---|
spanner.backups.create |
Crie uma cópia de segurança. Também requer spanner.databases.createBackup na base de dados de origem. |
spanner.backups.delete |
Elimine uma cópia de segurança. |
spanner.backups.get |
Faça uma cópia de segurança. |
spanner.backups.getIamPolicy |
Obtenha a Política IAM de uma cópia de segurança. |
spanner.backups.list |
Listar cópias de segurança. |
spanner.backups.restoreDatabase |
Restaure a base de dados a partir de uma cópia de segurança. Também requer spanner.databases.create para criar a base de dados restaurada na instância de destino. |
spanner.backups.setIamPolicy |
Defina a Política IAM de uma cópia de segurança. |
spanner.backups.update |
Atualize uma cópia de segurança. |
Operações de cópia de segurança
As seguintes autorizações aplicam-se às operações de cópia de segurança do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização da operação de cópia de segurança | Descrição |
|---|---|
spanner.backupOperations.cancel |
Cancele uma operação de cópia de segurança. |
spanner.backupOperations.get |
Obtenha uma operação de cópia de segurança específica. |
spanner.backupOperations.list |
Apresente as operações de cópia de segurança. |
Agendamentos de cópias de segurança
As seguintes autorizações aplicam-se às agendas de cópias de segurança do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização do horário de cópia de segurança | Descrição |
|---|---|
spanner.backupSchedules.create |
Crie um agendamento de cópias de segurança. Também requer spanner.databases.createBackup na base de dados de origem. |
spanner.backupSchedules.delete |
Elimine um agendamento de cópia de segurança. |
spanner.backupSchedules.get |
Obter um horário de cópia de segurança. |
spanner.backupSchedules.list |
Listar agendamentos de cópias de segurança. |
spanner.backupSchedules.update |
Atualize um agendamento de cópias de segurança. |
Sessões
As seguintes autorizações aplicam-se às sessões do Spanner. Para mais informações, consulte as referências da base de dados para as APIs REST e RPC.
| Nome da autorização da sessão | Descrição |
|---|---|
spanner.sessions.create |
Crie uma sessão. |
spanner.sessions.delete |
Elimine uma sessão. |
spanner.sessions.get |
Receba uma sessão. |
spanner.sessions.list |
Listar sessões. |
Funções predefinidas
Uma função predefinida é um conjunto de uma ou mais autorizações. Por exemplo, a função predefinida roles/spanner.databaseUser contém as autorizações spanner.databases.read e spanner.databases.write. Existem dois tipos de funções predefinidas para o Spanner:
- Funções de pessoa: concedidas a utilizadores ou grupos, o que lhes permite realizar ações nos recursos do seu projeto.
- Funções de máquinas: concedidas a contas de serviço, o que permite que as máquinas executadas como essas contas de serviço realizem ações nos recursos do seu projeto.
A tabela seguinte apresenta o controlo de acesso com funções predefinidas da IAM, incluindo uma lista das autorizações associadas a cada função:
| 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:
|
|