Vista geral da IAM

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

(roles/spanner.admin)

Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:

  • Grant and revoke permissions to other principals for all Spanner resources in the project.
  • Allocate and delete chargeable Spanner resources.
  • Issue get/list/modify operations on Cloud Spanner resources.
  • Read from and write to all Cloud Spanner databases in the project.
  • Fetch project metadata.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list
  • spanner.backupSchedules.create
  • spanner.backupSchedules.delete
  • spanner.backupSchedules.get
  • spanner.backupSchedules.getIamPolicy
  • spanner.backupSchedules.list
  • spanner.backupSchedules.setIamPolicy
  • spanner.backupSchedules.update
  • spanner.backups.copy
  • spanner.backups.create
  • spanner.backups.delete
  • spanner.backups.get
  • spanner.backups.getIamPolicy
  • spanner.backups.list
  • spanner.backups.restoreDatabase
  • spanner.backups.setIamPolicy
  • spanner.backups.update
  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list
  • spanner.databaseRoles.list
  • spanner.databases.adapt
  • spanner.databases.addSplitPoints
  • spanner.databases.beginOrRollbackReadWriteTransaction
  • spanner.databases.beginPartitionedDmlTransaction
  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.changequorum
  • spanner.databases.create
  • spanner.databases.createBackup
  • spanner.databases.drop
  • spanner.databases.get
  • spanner.databases.getDdl
  • spanner.databases.getIamPolicy
  • spanner.databases.list
  • spanner.databases.partitionQuery
  • spanner.databases.partitionRead
  • spanner.databases.read
  • spanner.databases.runGraphAlgorithms
  • spanner.databases.select
  • spanner.databases.setIamPolicy
  • spanner.databases.update
  • spanner.databases.updateDdl
  • spanner.databases.useDataBoost
  • spanner.databases.useRoleBasedAccess
  • spanner.databases.write
  • spanner.instanceConfigOperations.cancel
  • spanner.instanceConfigOperations.delete
  • spanner.instanceConfigOperations.get
  • spanner.instanceConfigOperations.list
  • spanner.instanceConfigs.create
  • spanner.instanceConfigs.delete
  • spanner.instanceConfigs.get
  • spanner.instanceConfigs.list
  • spanner.instanceConfigs.update
  • spanner.instanceOperations.cancel