Gerenciamento de identidade e acesso (IAM)

O Google Cloud Platform oferece gerenciamento de identidade e acesso (IAM, na sigla em inglês) para que você possa conceder acesso mais detalhado a recursos específicos da plataforma e evitar acesso indesejado a outros recursos. Nesta página, você conhecerá os papéis do IAM referentes ao Cloud Firestore no modo Datastore. Para uma descrição detalhada do Cloud IAM, leia a documentação do IAM.

Com o IAM, você pode adotar o princípio de segurança do menor privilégio para conceder apenas o acesso necessário aos recursos.

O IAM permite controlar quem (usuários) tem qual (papéis) permissão para quais recursos. Basta definir as políticas. As políticas de IAM concedem papéis específicos a um usuário, que recebe determinadas permissões. Por exemplo, é possível atribuir o papel datastore.indexAdmin a um usuário que passará a ter permissão para criar, modificar, excluir, listar ou ver índices.

Permissões e papéis

Veja nesta seção um resumo das permissões e dos papéis aceitos pelo Cloud Firestore no modo Datastore.

Permissões necessárias

A tabela a seguir lista as permissões que o solicitante precisa ter para chamar cada método:

Método Permissão necessária
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit para um comando insert datastore.entities.create
commit para um comando upsert datastore.entities.create
datastore.entities.update
commit para um comando update datastore.entities.update
commit para um comando delete datastore.entities.delete
commit para um comando lookup datastore.entities.get

Em caso de busca relacionada a metadados ou estatísticas, consulte Permissões necessárias para metadados e estatísticas.
commit para um comando query datastore.entities.list
datastore.entities.get (caso a consulta não seja do tipo somente chaves)

Em caso de consulta relacionada a metadados ou estatísticas, consulte Permissões necessárias para metadados e estatísticas.
lookup datastore.entities.get

Em caso de busca relacionada a metadados ou estatísticas, consulte Permissões necessárias para metadados e estatísticas.
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (caso a consulta não seja do tipo somente chaves)

Em caso de consulta relacionada a metadados ou estatísticas, consulte Permissões necessárias para metadados e estatísticas.

Permissões necessárias para metadados e estatísticas

A tabela a seguir mostra uma lista de permissões que o autor da chamada precisa ter para chamar métodos em Metadados e Estatísticas.

Método Permissão necessária
lookup de entidades com nomes de tipo __Stat_*__ datastore.statistics.get
runQuery usando tipos com nomes __Stat_*__ datastore.statistics.get
datastore.statistics.list
runQuery usando o tipo __namespace__ datastore.namespaces.get
datastore.namespaces.list

Papéis

Com o IAM, todo método da API Cloud Datastore exige que a conta autora da solicitação de API tenha as permissões apropriadas para usar o recurso. Defina as políticas que atribuem papéis a um usuário, grupo ou conta de serviço para conceder permissões. Além dos papéis primários de proprietário, editor e visualizador, é possível atribuir papéis do Cloud Firestore no modo Datastore aos usuários do projeto.

A tabela a seguir lista os papéis do IAM referentes ao Cloud Firestore no modo Datastore. É possível atribuir vários papéis a um usuário, grupo ou conta de serviço.

Papel Permissões Descrição
roles/datastore.owner
com
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Acesso total à instância do banco de dados.
roles/datastore.owner
sem
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
O usuário, grupo ou conta de serviço tem acesso total à instância do banco de dados, com a exceção das ações a seguir:
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Acesso de leitura/gravação a dados em um banco de dados do modo Datastore. Destinado a desenvolvedores de apps e contas de serviço.
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Acesso de leitura a todos os recursos do banco de dados do modo Datastore.
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
Acesso total para gerenciar importações e exportações.
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
Acesso total para gerenciar definições de índice.

Permissões

A tabela a seguir lista as permissões aceitas pelo Cloud Firestore no modo Datastore.

Nome da permissão do banco de dados Descrição
datastore.databases.export Exportar entidades de um banco de dados.
datastore.databases.get Iniciar ou fazer rollback de uma transação.
Ler metadados de um banco de dados.
datastore.databases.import Importar entidades para um banco de dados.
Nome da permissão de entidade Descrição
datastore.entities.allocateIds Alocar códigos para chaves com caminho de chave incompleto.
datastore.entities.create Criar uma entidade.
datastore.entities.delete Excluir uma entidade.
datastore.entities.get Ler uma entidade.
datastore.entities.list Listar as chaves das entidades de um projeto.
(datastore.entities.get é necessária para acessar os dados da entidade.)
datastore.entities.update Atualizar uma entidade.
Nome da permissão de índice Descrição
datastore.indexes.create Criar um índice.
datastore.indexes.delete Excluir um índice.
datastore.indexes.get Ler metadados de um índice.
datastore.indexes.list Listar os índices de um projeto.
datastore.indexes.update Atualizar um índice.
Nome da permissão de namespace Descrição
datastore.namespaces.get Recuperar metadados de um namespace.
datastore.namespaces.list Listar os namespaces de um projeto.
Nome da permissão de operação Descrição
datastore.operations.cancel Cancelar uma operação de longa duração.
datastore.operations.delete Excluir uma operação de longa duração.
datastore.operations.get Receber o estado mais recente de uma operação de longa duração.
datastore.operations.list Listar operações de longa duração.
Nome da permissão de projeto Descrição
resourcemanager.projects.get Procurar recursos no projeto.
resourcemanager.projects.list Listar projetos próprios.
Nome da permissão de estatística Descrição
datastore.statistics.get Recuperar entidades de estatística.
datastore.statistics.list Listar as chaves de entidades de estatística.
(datastore.statistics.get é necessária para acessar os dados da entidade de estatística.)
Nome da permissão do App Engine Descrição
appengine.applications.get Acesso somente leitura a todas as definições e configurações dos aplicativos no App Engine.

Papéis necessários para criar uma instância de banco de dados do modo Datastore

Para criar uma nova instância de banco de dados do modo Datastore, você precisa do papel Proprietário ou do papel Proprietário do Cloud Datastore.

Os bancos de dados do modo Datastore exigem um aplicativo ativo do App Engine. Se o projeto não tiver um aplicativo, o Cloud Firestore no modo Datastore criará um para você. Nesse caso, você precisará da permissão appengine.applications.create do papel de proprietário ou de um papel personalizado do IAM que contenha a permissão.

Latência na mudança de papel

Como o Cloud Firestore no modo Datastore armazena em cache as permissões do IAM por 5 minutos, esse será o tempo necessário para que qualquer alteração em um papel entre em vigor.

Como gerenciar o IAM

Receba e defina as políticas de IAM no Console do Google Cloud Platform, por meio dos métodos de IAM ou usando a ferramenta de linha de comando gcloud.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Datastore