O gerenciamento de identidade e acesso (IAM) permite controlar o acesso de usuários e grupos aos recursos do Spanner no projeto, na instância do Spanner e no nível do banco de dados do Spanner. Por exemplo, você pode especificar que um usuário tem controle total de um banco de dados específico em uma instância específica do seu projeto, mas não pode criar, modificar ou excluir instâncias no projeto. O uso do controle de acesso com o IAM permite conceder uma permissão a um usuário ou grupo sem ter que modificar cada instância do Spanner ou permissão de banco de dados individualmente.
Este documento se concentra nas permissões do IAM relevantes para o Spanner e nos papéis do IAM que concedem essas permissões. Para uma descrição detalhada do IAM e dos recursos dele, consulte o guia do desenvolvedor do Identity and Access Management. Consulte especificamente a seção Como gerenciar políticas do IAM.
Permissões
Com as permissões, os usuários podem realizar ações específicas nos recursos do Spanner. Por exemplo, com a permissão spanner.databases.read, um usuário pode
ler um banco de dados usando a API de leitura do Spanner. Já
spanner.databases.select permite que um usuário execute uma instrução de seleção do SQL em um
banco de dados. Não é possível dar permissões diretamente a usuários. Em vez disso, concede a eles papéis predefinidos ou personalizados, com uma ou mais permissões agrupadas.
As tabelas a seguir listam as permissões do IAM associadas ao Spanner.
Configurações da instância
As permissões a seguir se aplicam às configurações de instância do Spanner. Para mais informações, consulte as referências de configuração de instância para as APIs REST e RPC.
| Nome da permissão de configuração da instância | Descrição |
|---|---|
spanner.instanceConfigs.create |
Crie uma configuração de instância personalizada. |
spanner.instanceConfigs.delete |
Exclua uma configuração de instância personalizada. |
spanner.instanceConfigs.get |
Recebe uma configuração de instância. |
spanner.instanceConfigs.list |
Lista o conjunto de configurações de instância. |
spanner.instanceConfigs.update |
Atualize uma configuração de instância personalizada. |
Operações de configuração de instância
As permissões a seguir se aplicam às operações de configuração de instâncias do Spanner. Para mais informações, consulte as referências de instância para as APIs REST e RPC.
| Nome da permissão de operação de configuração da instância | Descrição |
|---|---|
spanner.instanceConfigOperations.cancel |
Cancelar uma operação de configuração de instância. |
spanner.instanceConfigOperations.delete |
Excluir uma operação de configuração de instância. |
spanner.instanceConfigOperations.get |
Recebe uma operação de configuração de instância. |
spanner.instanceConfigOperations.list |
Listar operações de configuração de instâncias. |
Instâncias
As permissões a seguir se aplicam às instâncias do Spanner. Para mais informações, consulte as referências de instância das APIs REST e RPC.
| Nome da permissão de instância | Descrição |
|---|---|
spanner.instances.create |
Criar uma instância. |
spanner.instances.delete |
Exclua uma instância. |
spanner.instances.get |
Recebe a configuração de uma instância específica. |
spanner.instances.getIamPolicy |
Recebe uma política do IAM da instância. |
spanner.instances.list |
Lista instâncias. |
spanner.instances.setIamPolicy |
Define a política do IAM de uma instância. |
spanner.instances.update |
Atualiza uma instância. |
Operações de instância
As permissões a seguir se aplicam às operações de instância do Spanner. Para mais informações, consulte as referências de instância das APIs REST e RPC.
| Nome da permissão da operação da instância | Descrição |
|---|---|
spanner.instanceOperations.cancel |
Cancela uma operação de instância. |
spanner.instanceOperations.delete |
Exclui uma operação de instância. |
spanner.instanceOperations.get |
Recebe uma operação de instância específica. |
spanner.instanceOperations.list |
Lista operações de instâncias. |
Partições de instância
As permissões a seguir se aplicam às partições de instância do Spanner. Para mais informações, consulte as referências de partição de instância para as APIs REST e RPC.
| Nome da permissão de instância | Descrição |
|---|---|
spanner.instancePartitions.create |
Crie uma partição de instância. |
spanner.instancePartitions.delete |
Exclua uma partição de instância. |
spanner.instancePartitions.get |
Recebe a configuração de uma partição de instância específica. |
spanner.instancePartitions.list |
Lista partições de instâncias. |
spanner.instancePartitions.update |
Atualize uma partição de instância. |
Operações de partição de instância
As permissões a seguir se aplicam às operações de partição de instâncias do Spanner. Para mais informações, consulte as referências de partição de instância para as APIs REST e RPC.
| Nome da permissão da operação de partição da instância | Descrição |
|---|---|
spanner.instancePartitionOperations.cancel |
Cancela uma operação de partição de instância. |
spanner.instancePartitionOperations.delete |
Exclua uma operação de partição de instância. |
spanner.instancePartitionOperations.get |
Recebe uma operação de partição de instância específica. |
spanner.instancePartitionOperations.list |
Listar operações de partição de instância. |
Bancos de dados
As permissões a seguir se aplicam aos bancos de dados do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão do banco de dados | Descrição |
|---|---|
spanner.databases.adapt |
Permite que a API Adapter do Spanner interaja diretamente com o Spanner. |
spanner.databases.beginOrRollbackReadWriteTransaction |
Comece ou reverter uma transação de leitura e gravação em um banco de dados do Spanner. |
spanner.databases.beginPartitionedDmlTransaction |
Executar uma instrução de linguagem de manipulação de dados (DML) particionada de instância. Para mais informações sobre consultas particionadas por instância, consulte Ler dados em paralelo. |
spanner.databases.beginReadOnlyTransaction |
Comece uma transação somente leitura em um banco de dados do Spanner. |
spanner.databases.create |
Cria um banco de dados. |
spanner.databases.createBackup |
Cria um backup a partir do banco de dados. Também requer spanner.backups.create para criar o recurso de backup. |
spanner.databases.drop |
Remove um banco de dados. |
spanner.databases.get |
Recebe os metadados de um banco de dados. |
spanner.databases.getDdl |
Recebe o esquema de um banco de dados. |
spanner.databases.getIamPolicy |
Recebe a política do IAM de um banco de dados. |
spanner.databases.list |
Lista bancos de dados |
spanner.databases.read |
Lê de um banco de dados usando a API de leitura. |
spanner.databases.select |
Executa uma instrução de seleção do SQL em um banco de dados. |
spanner.databases.setIamPolicy |
Defina a política do IAM de um banco de dados. |
spanner.databases.update |
Atualiza os metadados de um banco de dados. |
spanner.databases.updateDdl |
Atualiza o esquema de um banco de dados. |
spanner.databases.useDataBoost |
Use os recursos de computação do Spanner Data Boost para processar consultas particionadas de instância. |
spanner.databases.useRoleBasedAccess |
Use o controle de acesso granular. |
spanner.databases.write |
Grava em um banco de dados. |
Papéis de banco de dados
As permissões a seguir se aplicam aos papéis de banco de dados do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão do papel do banco de dados | Descrição |
|---|---|
spanner.databaseRoles.list |
Lista papéis de banco de dados. |
spanner.databaseRoles.use |
Use uma função de banco de dados especificada. |
Operações de banco de dados
As permissões a seguir se aplicam às operações do banco de dados do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão de operação do banco de dados | Descrição |
|---|---|
spanner.databaseOperations.cancel |
Cancela uma operação do banco de dados. |
spanner.databaseOperations.get |
Recebe uma operação de banco de dados específica. |
spanner.databaseOperations.list |
Lista banco de dados e restaura operações de banco de dados. |
Backups
As permissões a seguir se aplicam aos backups do Spanner. Para mais informações, consulte as referências de backups das APIs REST e RPC.
| Nome da permissão de backup | Descrição |
|---|---|
spanner.backups.create |
Criar um backup. Também requer spanner.databases.createBackup no banco de dados de origem. |
spanner.backups.delete |
Exclui um backup |
spanner.backups.get |
Recebe um backup. |
spanner.backups.getIamPolicy |
Recebe a política do IAM de backup. |
spanner.backups.list |
Lista backups |
spanner.backups.restoreDatabase |
Restaura um banco de dados a partir de um backup. Também requer spanner.databases.create para criar o banco de dados restaurado na instância de destino. |
spanner.backups.setIamPolicy |
Define a política do IAM de backup. |
spanner.backups.update |
Atualiza um backup. |
Operações de backup
As permissões a seguir se aplicam às operações de backup do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão da operação de backup | Descrição |
|---|---|
spanner.backupOperations.cancel |
Cancela uma operação de backup. |
spanner.backupOperations.get |
Recebe uma operação de backup específica. |
spanner.backupOperations.list |
Lista operações de backup. |
Programações de backup
As permissões a seguir se aplicam às programações de backup do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão da programação de backup | Descrição |
|---|---|
spanner.backupSchedules.create |
Crie uma programação de backup. Também requer spanner.databases.createBackup no banco de dados de origem. |
spanner.backupSchedules.delete |
Excluir uma programação de backup. |
spanner.backupSchedules.get |
Acessar uma programação de backup. |
spanner.backupSchedules.list |
Listar programações de backup. |
spanner.backupSchedules.update |
Atualize uma programação de backup. |
Sessões
As permissões a seguir se aplicam às sessões do Spanner. Para mais informações, consulte as referências do banco de dados para as APIs REST e RPC.
| Nome da permissão da sessão | Descrição |
|---|---|
spanner.sessions.create |
Cria uma sessão. |
spanner.sessions.delete |
Exclui uma sessão. |
spanner.sessions.get |
Recebe uma sessão. |
spanner.sessions.list |
Lista sessões. |
Papéis predefinidos
Papel predefinido é um pacote de uma ou mais permissões. Por exemplo, o papel predefinido roles/spanner.databaseUser contém as permissões spanner.databases.read e spanner.databases.write. Há
dois tipos de papéis predefinidos para o Spanner:
- Papéis de pessoa: concedidos a usuários ou grupos, permitem que eles realizem ações nos recursos do projeto.
- Papéis de máquina: concedidos a contas de serviço, permitem que as máquinas executadas como aquelas contas de serviço realizem ações nos recursos do projeto.
A tabela a seguir lista o controle de acesso com papéis predefinidos do IAM, incluindo uma lista de permissões associadas a cada papel:
| 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 Editor( Editor role for Cloud Spanner |
|
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:
|
|