Controle de acesso

Nesta página, descrevemos as opções de controle de acesso disponíveis no Cloud Bigtable.

Visão geral

O Cloud Bigtable usa o gerenciamento de identidade e acesso (IAM) para fazer o controle de acesso.

Para o Cloud Bigtable, é possível configurar o controle de acesso nos níveis de projeto, instância e tabela. Veja, a seguir, alguns exemplos de como usar o controle de acesso no nível do projeto:

  • Permitir que um usuário leia qualquer tabela do projeto, sem poder alterá-la.
  • Permitir que um usuário leia e edite qualquer tabela do projeto, sem poder gerenciar instâncias.
  • Permitir que um usuário leia e edite qualquer tabela do projeto e gerencie instâncias.

Aqui estão alguns exemplos de como usar o controle de acesso no nível da instância:

  • Permitir que um usuário leia qualquer tabela em apenas uma instância em um projeto que tenha várias instâncias.
  • Permitir que um usuário gerencie apenas uma instância em um projeto que tenha várias instâncias.

Exemplos de como usar o controle de acesso no nível da tabela:

  • Permitir que um usuário grave em uma tabela, mas não leia dela.
  • Permitir que um usuário leia de uma tabela, mas não grave nela.

Para ver uma descrição detalhada do IAM e dos recursos dele, consulte este Guia do desenvolvedor. Especificamente, confira Como conceder, alterar e revogar acesso a recursos.

Para ver listas das permissões e dos papéis com os quais o Cloud Bigtable é compatível, consulte as seções a seguir.

Ativação da Cloud Bigtable API

Para ver e atribuir papéis do IAM ao Cloud Bigtable, é necessário ativar a API Cloud Bigtable para o projeto em questão. Você não verá os papéis do Cloud Bigtable no Console do Cloud até ativar a API.

Ative a API

Permissões

Nesta seção, resumimos as permissões compatíveis com o Cloud Bigtable.

Com as permissões, os usuários podem desempenhar ações específicas nos recursos do Google Bigtable. Por exemplo, com as permissões bigtable.instances.list, os usuários podem listar todas as instâncias do Cloud Bigtable em um projeto. Não é possível conceder permissões aos usuários diretamente. Em vez disso, é preciso atribuir a cada um deles um papel predefinido ou personalizado, que concederá uma ou mais permissões.

As tabelas a seguir listam as permissões do IAM associadas ao Cloud Bigtable:

Nome da permissão do local Descrição
bigtable.locations.list Lista locais do Cloud Bigtable.
Nome da permissão de instância Descrição
bigtable.instances.create Criar uma instância do Cloud Bigtable.
bigtable.instances.delete Excluir uma instância do Cloud Bigtable.
bigtable.instances.get Conseguir informações sobre uma instância do Cloud Bigtable.
bigtable.instances.getIamPolicy Ler listas de controle de acesso (ACLs) da instância. Retorno como políticas do IAM.
bigtable.instances.list Listar as instâncias do Cloud Bigtable de um projeto.
bigtable.instances.setIamPolicy Atualizar ACLs.
bigtable.instances.update Atualizar as configurações de uma instância do Cloud Bigtable.
Nome da permissão do perfil de aplicativo Descrição
bigtable.appProfiles.create Criar um perfil de aplicativo do Cloud Bigtable.
bigtable.appProfiles.delete Excluir um perfil de aplicativo do Cloud Bigtable.
bigtable.appProfiles.get Conseguir informações sobre um perfil de aplicativo do Cloud Bigtable.
bigtable.appProfiles.list Listar os perfis de aplicativos do Cloud Bigtable de uma instância.
bigtable.appProfiles.update Atualizar as configurações de um perfil de aplicativo do Cloud Bigtable.
Nome da permissão de backups Descrição
bigtable.backups.create Criar um backup do Cloud Bigtable.
bigtable.backups.get Conseguir um backup do Cloud Bigtable.
bigtable.backups.list Listar backups do Cloud Bigtable.
bigtable.backups.delete Excluir um backup do Cloud Bigtable.
bigtable.backups.update Modificar a expiração de um backup do Cloud Bigtable.
bigtable.backups.restore Restaurar um backup do Cloud Bigtable.
Nome da permissão de cluster Descrição
bigtable.clusters.create Criar um cluster do Cloud Bigtable.
bigtable.clusters.delete Excluir um cluster do Cloud Bigtable.
bigtable.clusters.get Conseguir informações sobre um cluster do Cloud Bigtable.
bigtable.clusters.list Listar os clusters do Cloud Bigtable de uma instância.
bigtable.clusters.update Atualizar as configurações de um cluster do Cloud Bigtable.
Nome da permissão de tabela Descrição
bigtable.tables.checkConsistency Verificar se uma tabela replicada está atualizada.
bigtable.tables.create Criar uma tabela.
bigtable.tables.delete Excluir uma tabela.
bigtable.tables.generateConsistencyToken Gerar o token para verificar se uma tabela replicada está atualizada.
bigtable.tables.get Conseguir informações sobre uma tabela, incluindo grupos de colunas e configurações individuais.
bigtable.tables.getIamPolicy Ler ACLs da tabela. Retorno como políticas do Cloud IAM.
bigtable.tables.list Listar tabelas em uma instância.
bigtable.tables.mutateRows Modificar linhas em uma tabela ou truncar a tabela.
bigtable.tables.readRows Ler linhas de uma tabela.
bigtable.tables.sampleRowKeys Conseguir uma amostra das chaves de linha usadas em uma tabela.
bigtable.tables.setIamPolicy Atualizar as ACLs de tabela.
bigtable.tables.update Atualizar as configurações de uma tabela, incluindo grupos de colunas e configurações individuais.

A tabela a seguir lista as permissões do IAM associadas ao Key Visualizer:

Nome da permissão do Key Visualizer Descrição
bigtable.keyvisualizer.get Receba informações do Key Visualizer sobre uma tabela, incluindo metadados sobre padrões de acesso e distribuições de chave de linha.
bigtable.keyvisualizer.list Lista as informações do Key Visualizer disponíveis para uma tabela.

Papéis predefinidos

Cada papel predefinido é um grupo de uma ou mais permissões. Por exemplo, roles/bigtable.reader fornece acesso somente leitura a informações sobre instâncias, clusters, tabelas e grupos de colunas do Cloud Bigtable, bem como os dados contidos em suas tabelas. Você atribui papéis a usuários ou grupos, o que permite que eles realizem ações nos recursos do seu projeto.

A tabela a seguir lista os papéis predefinidos do Cloud Bigtable, incluindo uma lista de permissões associadas a cada um:

Papel Permissões Descrição
roles/bigtable.admin

Acesso a todos os recursos do Cloud Bigtable:

bigtable.*.*

Veja o acesso aos gráficos de monitoramento no Console do Cloud:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acesso a metadados no nível do projeto:

resourcemanager.projects.get

Administra todas as instâncias de um projeto, incluindo os dados armazenados nas tabelas. Pode criar novas instâncias. Destinado a administradores de projeto. Isso inclui o acesso ao Key Visualizer.
roles/bigtable.user

Acesso somente leitura a metadados de instâncias, clusters, tabelas e grupos de colunas:

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Acesso de leitura e gravação a tabelas:

  • bigtable.tables.mutateRows
  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Veja o acesso aos gráficos de monitoramento no Console do Cloud:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acesso a metadados no nível do projeto:

resourcemanager.projects.get

Dá acesso de leitura e gravação aos dados armazenados nas tabelas. Destinado a contas de serviço ou desenvolvedores de aplicativos. Isso inclui o acesso ao Key Visualizer.
roles/bigtable.reader

Acesso somente leitura a metadados de instâncias, clusters, tabelas e grupos de colunas:

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Acesso somente leitura a tabelas:

  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Veja o acesso aos gráficos de monitoramento no Console do Cloud:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acesso a metadados no nível do projeto:

resourcemanager.projects.get

Dá acesso somente leitura aos dados armazenados nas tabelas. Destinado a analistas de dados, geradores de painéis e outros cenários de análise de dados. Isso inclui o acesso ao Key Visualizer.
roles/bigtable.viewer

Acesso somente leitura a metadados de instâncias, clusters, tabelas e grupos de colunas:

  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken
  • bigtable.tables.get
  • bigtable.tables.list

Veja o acesso aos gráficos de monitoramento no Console do Cloud:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acesso a metadados no nível do projeto:

resourcemanager.projects.get

Não fornece acesso a dados. Prevê um conjunto mínimo de permissões para acessar o Console do Cloud para Cloud Bigtable. Isso não inclui o acesso ao Key Visualizer.

Papéis personalizados

Se os papéis predefinidos do Cloud Bigtable não atenderem aos seus requisitos de negócios, defina seus próprios papéis personalizados com as permissões que você especificar.

Se o papel personalizado precisar de acesso ao Console do Cloud, identifique as tarefas que os usuários realizarão e certifique-se de que o papel personalizado tenha as permissões necessárias para cada tarefa, como mostrado na tabela abaixo. Se um papel personalizado não tiver todas as permissões necessárias para uma tarefa e um usuário tentar executar essa tarefa, o Console do Cloud não funcionará corretamente.

Tarefa do Console do Cloud Permissões exigidas
Acesso básico ao Console do Cloud
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • resourcemanager.projects.get
Criação de uma instância ou cluster

Permissões de acesso básico mais:

  • bigtable.clusters.create
  • bigtable.instances.create
Modificação de uma instância ou cluster

Permissões de acesso básico mais:

  • bigtable.clusters.update
  • bigtable.instances.update
Gerenciamento da configuração de replicação

Permissões de acesso básico mais:

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.update
Exclusão de uma instância ou cluster

Permissões de acesso básico mais:

  • bigtable.clusters.delete
  • bigtable.instances.delete
Monitoramento de uma instância ou cluster

Permissões de acesso básico mais:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Gerenciamento de IAM no nível do projeto

No nível do projeto, é possível conceder, alterar e revogar papéis de IAM usando o Console do Google Cloud, a API IAM ou a ferramenta de linha de comando gcloud. Para instruções detalhadas consulte Como conceder, alterar e revogar acesso aos membros do projeto.

Gerenciamento do IAM no nível da instância

Veja nesta seção como gerenciar os papéis do IAM no Cloud Bigtable no nível da instância.

Antes de começar

Antes de definir os papéis de IAM no nível da instância, verifique se o usuário tem pelo menos um dos seguintes papéis no projeto:

  • Visualizador do Bigtable (recomendado)
  • Leitor do Bigtable
  • Usuário do Bigtable
  • Administrador do Bigtable

Selecione um papel no nível do projeto que não tenha mais permissões do que as necessárias a um usuário em todas as instâncias do projeto. Por isso, conceda o papel Visualizador do Bigtable em quase todos os casos.

Se o usuário não tiver pelo menos um desses papéis no nível do projeto, não terá acesso ao Cloud Bigtable por meio do Console do Cloud. O Console do Cloud requer um desses papéis no nível do projeto para que ele possa recuperar informações sobre instâncias e clusters em nome do usuário.

Como conceder papéis de IAM no nível da instância

No nível da instância, é possível conceder qualquer um dos papéis predefinidos do Cloud Bigtable a um usuário ou uma conta de serviço. Também é possível conceder qualquer papel personalizado que você tenha definido.

Para conceder um papel predefinido ou personalizado a uma conta de serviço ou um usuário no nível da instância, faça o seguinte:

Console

  1. Acesse a página de instâncias do Cloud Bigtable no Console do Cloud.

    Acessar a página "Instâncias"

  2. Marque as caixas ao lado das instâncias dos papéis que você quer gerenciar. Será exibido um painel de informações.

  3. No painel de informações, clique em Permissões.

  4. Em Adicionar membros, digite o endereço de e-mail do usuário ou da conta de serviço que você quer adicionar e clique no endereço de e-mail do usuário ou da conta de serviço.

  5. Clique na lista suspensa Selecionar um papel e clique em Cloud Bigtable para selecionar um papel predefinido ou em Personalizado para selecionar um papel personalizado.

  6. Clique no nome de cada papel que você quer atribuir.

  7. Clique em Adicionar. O usuário ou a conta de serviço receberá os papéis que você especificou no nível da instância.

gcloud

  1. Se você não souber o ID da instância, use o comando bigtable instances list para ver uma lista das instâncias do projeto:

    gcloud bigtable instances list
    
  2. Use o comando bigtable instances set-iam-policy:

    gcloud bigtable instances set-iam-policy INSTANCE_ID POLICY_FILE
    

    Informe os valores a seguir:

    • INSTANCE_ID: identificador permanente da instância.
    • POLICY_FILE: caminho para um arquivo JSON ou YAML local que contenha uma política de IAM válida.

Gerenciamento de IAM no nível da tabela

Esta seção explica como gerenciar os papéis de IAM do Cloud Bigtable no nível da tabela.

Antes de começar

Antes de definir papéis de IAM no nível da tabela para um usuário, verifique se o usuário tem pelo menos um destes papéis de IAM no nível do projeto:

  • Visualizador do Bigtable (recomendado)
  • Leitor do Bigtable
  • Usuário do Bigtable
  • Administrador do Bigtable

Escolha um papel no nível do projeto que não tenha mais permissões do que o usuário realmente precisa. Por isso, conceda o papel Visualizador do Bigtable em quase todos os casos.

Se o usuário não tiver pelo menos um desses papéis no nível do projeto, não terá acesso ao Cloud Bigtable por meio do Console do Cloud. O Console do Cloud requer uma desses papéis no nível do projeto para que ele possa recuperar informações sobre instâncias, clusters e tabelas.

Como conceder papéis de IAM no nível da tabela

No nível da tabela, é possível conceder qualquer papel predefinido do Cloud Bigtable a um usuário ou uma conta de serviço. Também é possível conceder qualquer papel personalizado que você tenha definido.

Para conceder um papel predefinido ou personalizado a uma conta de serviço ou um usuário no nível da tabela, faça o seguinte:

Console

  1. Acesse a página de instâncias do Cloud Bigtable no Console do Cloud.

    Acessar a página "Instâncias"

  2. Clique no nome da instância que contém a tabela que terá o IAM definindo.

  3. Selecione Tabelas no painel de navegação esquerdo.

  4. Marque as caixas ao lado das tabelas com os papéis que você quer gerenciar. Será exibido um painel de informações.

  5. No painel de informações, clique em Permissões.

  6. Em Adicionar membros, digite o endereço de e-mail do usuário ou da conta de serviço que você quer adicionar e clique no endereço de e-mail do usuário ou da conta de serviço.

  7. Clique na lista suspensa Selecionar um papel e clique em Cloud Bigtable para selecionar um papel predefinido ou em Personalizado para selecionar um papel personalizado.

  8. Clique no nome de cada papel que você quer atribuir.

  9. Clique em Adicionar. O usuário ou a conta de serviço receberá os papéis que você especificou no nível da tabela.

gcloud

  1. Se você não souber o ID da instância, use o comando bigtable instances list para ver uma lista das instâncias do projeto:

    gcloud bigtable instances list
    
  2. Se você não souber os IDs dos clusters da instância, use o comando bigtable clusters list para ver uma lista de clusters da instância:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    
  3. Use o comando bigtable instances tables set-iam-policy:

    gcloud beta bigtable instances tables set-iam-policy TABLE_ID \
        --instance=INSTANCE_ID POLICY_FILE
    

    Informe os valores a seguir:

    • INSTANCE_ID: identificador permanente da instância.
    • POLICY_FILE: caminho para um arquivo JSON ou YAML local que contenha uma política de IAM válida.

A seguir

Saiba mais sobre IAM.