Visão geral do IAM

Com o Identity and Access Management (IAM), é possível controlar o acesso dos usuários aos recursos do Spanner Omni. Por exemplo, um usuário pode ter controle total de um banco de dados específico, mas não pode criar ou modificar outros bancos de dados na sua implantação. Com o IAM, é possível conceder uma permissão a um usuário sem precisar modificar cada permissão de banco de dados do Spanner Omni individualmente.

Este documento se concentra nas permissões do IAM relevantes para o Spanner Omni 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.

Permissões

As permissões permitem que os usuários executem ações específicas nos recursos do Spanner Omni. Por exemplo, a permissão spanner.databases.read permite que um usuário leia um banco de dados usando a API de leitura do Spanner Omni, enquanto spanner.databases.export permite que um usuário exporte um banco de dados do Spanner Omni. Você não concede permissões diretamente aos usuários, mas atribui a eles papéis predefinidos, que têm uma ou mais permissões agrupadas.

As tabelas a seguir listam as permissões do IAM associadas ao Spanner Omni. Algumas permissões são compartilhadas com o Spanner, e outras são usadas apenas pelo Spanner Omni.

Bancos de dados

As permissões a seguir se aplicam aos bancos de dados do Spanner Omni.

Nome da permissão do banco de dados Descrição Spanner e Spanner Omni Somente Spanner Omni
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.get Recebe os metadados 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.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.write Grava em um banco de dados. ✔
spanner.databases.compact Compacta tabelas em um banco de dados. ✔
spanner.databases.export Exporta um banco de dados do Spanner Omni. ✔
spanner.databases.import Importa um banco de dados do Spanner Omni. ✔
spanner.databases.addSplitPoints Adiciona pontos de divisão a um banco de dados. ✔

Operações de banco de dados

As permissões a seguir se aplicam às operações de banco de dados do Spanner Omni.

Nome da permissão de operação do banco de dados Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.databaseOperations.cancel Cancela uma operação do banco de dados. ✔
spanner.databaseOperations.delete Exclui 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 seguintes permissões se aplicam aos backups do Spanner Omni.

Nome da permissão de backup Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.backups.copy Copiar um backup. ✔
spanner.backups.create criar um backup. Também requer spanner.databases.createBackup no banco de dados de origem. ✔
spanner.backups.createDatabaseFromBackup Crie um banco de dados usando um backup. ✔
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 exige spanner.databases.create para criar o banco de dados restaurado. ✔
spanner.backups.setIamPolicy Define a política do IAM de backup. ✔
spanner.backups.update Atualiza um backup. ✔
spanner.backups.import Importa um backup do armazenamento externo. ✔

Operações de backup

As seguintes permissões se aplicam às operações de backup do Spanner Omni.

Nome da permissão da operação de backup Descrição Spanner e Spanner Omni Somente Spanner Omni
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 seguintes permissões se aplicam às programações de backup do Spanner Omni.

Nome da permissão da programação de backup Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.backupSchedules.create Criar 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 Receber uma programação de backup. ✔
spanner.backupSchedules.list Listar programações de backup. ✔
spanner.backupSchedules.update Atualizar uma programação de backup. ✔
spanner.backupSchedules.getIamPolicy Recebe a política do IAM de uma programação de backup. ✔
spanner.backupSchedules.setIamPolicy Defina a política do IAM de uma programação de backup. ✔

Descritores de backup

As seguintes permissões se aplicam aos descritores de backup do Spanner Omni.

Nome da permissão do descritor de backup Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.backupDescriptors.import Importa um backup de um descritor de backup. ✔
spanner.backupDescriptors.list Listar descritores de backup. ✔

Sessões

As seguintes permissões se aplicam às sessões do Spanner Omni.

Nome da permissão da sessão Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.sessions.create Criar uma sessão. ✔
spanner.sessions.delete Exclui uma sessão. ✔
spanner.sessions.get Recebe uma sessão. ✔
spanner.sessions.list Lista sessões. ✔

Local e zonas

As permissões a seguir se aplicam a locais e zonas do Spanner Omni.

Nome da permissão Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.locations.create Criar um local do Spanner Omni ✔
spanner.locations.delete Excluir um local do Spanner Omni ✔
spanner.locations.get Receber um local do Spanner Omni ✔
spanner.locations.list Listar locais do Spanner Omni ✔
spanner.locationDistances.create Criar uma distância de local do Spanner Omni ✔
spanner.locationDistances.delete Excluir uma distância de local do Spanner Omni ✔
spanner.locationDistances.get Receber uma distância de local do Spanner Omni ✔
spanner.locationDistances.list Listar distâncias de locais do Spanner Omni ✔
spanner.locationDistances.update Atualizar a distância de um local do Spanner Omni ✔
spanner.zones.create Criar uma zona do Spanner Omni ✔
spanner.zones.delete Excluir uma zona do Spanner Omni ✔
spanner.zones.get Receber uma zona do Spanner Omni ✔
spanner.zones.list Listar zonas do Spanner Omni ✔

Servidores

As permissões a seguir se aplicam aos servidores do Spanner Omni.

Nome da permissão do servidor Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.servers.create Cria um servidor do Spanner Omni. ✔
spanner.servers.delete Exclui um servidor do Spanner Omni. ✔
spanner.servers.get Recebe um servidor do Spanner Omni. ✔
spanner.servers.list Lista os servidores do Spanner Omni. ✔

Usuários e funções

As permissões a seguir se aplicam a usuários e funções do Spanner Omni.

Nome da permissão Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.users.create Cria um usuário do Spanner Omni. ✔
spanner.users.delete Exclui um usuário do Spanner Omni. ✔
spanner.users.get Recebe um usuário do Spanner Omni ✔
spanner.users.list Lista os usuários do Spanner Omni. ✔
spanner.users.update Atualiza um usuário do Spanner Omni. ✔
spanner.roles.get Recebe uma função do Spanner Omni ✔
spanner.roles.list Lista as funções do Spanner Omni. ✔

Armazenamento externo

As seguintes permissões se aplicam ao armazenamento externo do Spanner Omni.

Nome da permissão de armazenamento externo Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.externalStorages.create Cria armazenamento externo. ✔
spanner.externalStorages.delete Exclui um armazenamento externo. ✔
spanner.externalStorages.get Recebe armazenamento externo ✔
spanner.externalStorages.getIamPolicy Recebe a política do IAM de um armazenamento externo. ✔
spanner.externalStorages.list Lista os armazenamentos externos ✔
spanner.externalStorages.setIamPolicy Define a política do IAM de um armazenamento externo. ✔

Sistema de arquivos e descritores

As seguintes permissões se aplicam ao sistema de arquivos do Spanner Omni.

Nome da permissão Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.filesystem.cat Imprime arquivos no sistema de arquivos do Spanner Omni. ✔
spanner.filesystem.ls Lista os arquivos no sistema de arquivos do Spanner Omni. ✔
spanner.descriptors.print Imprime descritores no sistema de arquivos do Spanner Omni. ✔

Outras permissões de administrador

As permissões a seguir se aplicam a outras tarefas de administrador do Spanner Omni.

Nome da permissão Descrição Spanner e Spanner Omni Somente Spanner Omni
spanner.chubby.list Lista as células do Chubby. ✔
spanner.chubby.print Imprime o conteúdo da célula Chubby. ✔
spanner.deployment.get Receber implantação do Spanner Omni ✔
spanner.diagnostics.create Coleta artefatos dos servidores do Spanner Omni para depuração. ✔
spanner.internal-tables.sql Executa consultas SQL em tabelas internas. ✔
spanner.logs.copy Copia registros de um servidor do Spanner Omni. ✔
spanner.tablet.move Move um bloco de um servidor do Spanner Omni para outro. ✔
spanner.workflows.delete Exclui um fluxo de trabalho em um banco de dados. ✔
spanner.groups.compact Compacta tablets em um grupo ✔
spanner.directories.compact Compacta tablets em um diretório ✔

Papéis predefinidos

Papel predefinido é um pacote de uma ou mais permissões. O Spanner Omni é compatível com os seguintes papéis predefinidos:

Papel Descrição
roles/spanner.admin Tem acesso completo a todos os recursos do Spanner Omni. Inclui todas as permissões.
roles/spanner.backupAdmin Tem acesso completo aos backups e operações de backup do Spanner Omni.
roles/spanner.backupWriter Pode criar backups, mas não atualizar ou excluir.
roles/spanner.databaseAdmin Tem acesso completo a todos os bancos de dados do Spanner Omni em um projeto.
roles/spanner.databaseReader Pode ler do banco de dados do Spanner Omni e ver o esquema.
roles/spanner.databaseUser Pode ler e gravar no banco de dados do Spanner Omni.
roles/spanner.editor Papel de editor para o Spanner Omni.
roles/spanner.restoreAdmin Pode restaurar um banco de dados de um backup.
roles/spanner.viewer Pode ver todos os recursos do Spanner Omni, mas não pode modificá-los. Inclui permissões somente leitura.

O Spanner Omni tem algumas outras limitações importantes:

  • Nenhum papel personalizado.
  • Não há controle de acesso granular.
  • Sem condições do IAM.

A seguir