Controlo de acesso do Bigtable com a IAM
Esta página descreve as opções de controlo de acesso no Bigtable.
Vista geral
O Bigtable usa a gestão de identidade e de acesso (IAM) para o controlo de acesso. Define políticas IAM nos recursos para controlar quem tem que tipo de acesso a que recursos.
Os recursos do Bigtable estão organizados numa hierarquia. Um projeto é o principal de uma instância do Bigtable, que é o principal dos respetivos clusters e tabelas.Google Cloud Uma tabela é o elemento principal das respetivas vistas autorizadas, enquanto um cluster é o elemento principal das respetivas cópias de segurança. Pode configurar o controlo de acesso em cada nível.
Se tiver autorizações num determinado nível, tem automaticamente autorizações abaixo desse nível. Por exemplo, se tiver acesso ao nível do projeto, tem acesso às instâncias, aos clusters, às tabelas, às visualizações autorizadas e às visualizações materializadas contínuas nesse projeto. Se lhe for concedido acesso a uma vista autorizada ou a uma vista materializada contínua, não tem automaticamente acesso a recursos de nível superior que sejam pais da vista autorizada ou da vista materializada contínua, como a tabela e a instância. Este comportamento denomina-se herança de políticas.
Para mais informações sobre a hierarquia do IAM, consulte o artigo Herança de políticas do IAM.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível do projeto:
- Permitir que um utilizador leia, mas não escreva, em qualquer tabela no projeto.
- Permitir que um utilizador leia e escreva em qualquer tabela no projeto, mas não gerir instâncias.
- Permitir que um utilizador leia e escreva em qualquer tabela no projeto e faça a gestão de instâncias.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível da instância:
- Permitir que um utilizador leia a partir de qualquer tabela apenas numa instância num projeto que tenha várias instâncias.
- Permitir que um utilizador faça a gestão de apenas uma instância num projeto que tenha várias instâncias.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível da tabela:
- Permitir que um utilizador escreva numa tabela, mas não leia a tabela.
- Permitir que um utilizador leia a partir de uma tabela, mas não escreva na tabela.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível da cópia de segurança:
- Impedir que um utilizador elimine uma cópia de segurança.
- Impedir que um utilizador faça o restauro a partir da cópia de segurança.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível da visualização autorizada:
- Permitir que um utilizador leia uma vista autorizada, mas não a modifique.
- Permitir que um utilizador veja dados apenas de uma de várias vistas autorizadas de uma tabela.
Seguem-se alguns exemplos de utilização do controlo de acesso ao nível da vista materializada contínua:
- Permitir que um utilizador leia a partir de uma vista materializada contínua, mas não modifique a tabela subjacente.
Para uma descrição detalhada do IAM e das respetivas funcionalidades, consulte o guia do programador do IAM. Em particular, consulte o artigo Conceder, alterar e revogar o acesso.
No Bigtable, não pode conceder acesso aos seguintes tipos de diretores:
Para ver listas das autorizações e funções que o Bigtable suporta, consulte as secções seguintes.
Ativar a API Bigtable
Para ver e atribuir funções do IAM do Bigtable, tem de ativar a API Bigtable para o seu projeto. Não pode ver as funções do Bigtable na consola até ativar a API. Google Cloud
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Autorizações
Esta secção resume as autorizações suportadas pelo Bigtable.
As autorizações permitem que os utilizadores realizem ações específicas em recursos do Bigtable. Por exemplo, as autorizações bigtable.instances.list
permitem que os utilizadores
indiquem todas as instâncias do Bigtable num projeto. Não
concede autorizações aos utilizadores diretamente. Em vez disso, atribui a cada utilizador uma função
predefinida ou uma função personalizada, que concede uma ou mais
autorizações.
As tabelas seguintes indicam as autorizações de IAM associadas ao Bigtable:
Nome da autorização do perfil da app | Descrição |
---|---|
bigtable.appProfiles.create |
Crie um perfil de app do Bigtable. |
bigtable.appProfiles.delete |
Elimine um perfil de app do Bigtable. |
bigtable.appProfiles.get |
Receba informações sobre um perfil de app do Bigtable. |
bigtable.appProfiles.list |
Liste os perfis de apps do Bigtable de uma instância. |
bigtable.appProfiles.update |
Atualize as definições de um perfil de app do Bigtable. |
Nome da autorização de cópias de segurança | Descrição |
---|---|
bigtable.backups.create |
Crie uma cópia de segurança do Bigtable. |
bigtable.backups.delete |
Elimine uma cópia de segurança do Bigtable. |
bigtable.backups.get |
Receba informações sobre uma cópia de segurança do Bigtable. |
bigtable.backups.getIamPolicy |
Ler as listas de controlo de acesso (ACL) de uma cópia de segurança. Devolvidas como políticas IAM. |
bigtable.backups.list |
Apresentar cópias de segurança do Bigtable. |
bigtable.backups.restore |
Restaurar a partir de uma cópia de segurança do Bigtable. |
bigtable.backups.testIamPermissions |
Obter as autorizações do autor da chamada numa cópia de segurança especificada. |
bigtable.backups.read |
Ler a partir de uma cópia de segurança do Bigtable. |
bigtable.backups.setIamPolicy |
Atualize as LCAs de cópia de segurança. |
bigtable.backups.update |
Modifique a validade de uma cópia de segurança do Bigtable. |
Nome da autorização do cluster | Descrição |
---|---|
bigtable.clusters.create |
Crie um cluster do Bigtable. |
bigtable.clusters.delete |
Elimine um cluster do Bigtable. |
bigtable.clusters.get |
Receba informações sobre um cluster do Bigtable. |
bigtable.clusters.list |
Liste os clusters do Bigtable de uma instância. |
bigtable.clusters.update |
Atualize as definições de um cluster do Bigtable. |
Nome da autorização de tablets quentes | Descrição |
---|---|
bigtable.hotTablets.list |
Liste os tablets populares para um cluster. |
Nome da autorização da instância | Descrição |
---|---|
bigtable.instances.create |
Crie uma instância do Bigtable. |
bigtable.instances.createTagBinding |
Crie uma etiqueta. |
bigtable.instances.delete |
Elimine uma instância do Bigtable. |
bigtable.instances.deleteTagBinding |
Elimine uma etiqueta. |
bigtable.instances.get |
Receber informações sobre uma instância do Bigtable. |
bigtable.instances.getIamPolicy |
Ler listas de controlo de acesso (ACLs) de instâncias. Devolvidas como políticas IAM. |
bigtable.instances.list |
Apresentar as instâncias do Bigtable de um projeto. |
bigtable.instances.listEffectiveTagBindings |
Apresenta todas as etiquetas em vigor para uma instância. |
bigtable.instances.listTagBindings |
Liste as etiquetas de uma instância. |
bigtable.instances.ping |
Envie pedidos de preparação de canais. |
bigtable.instances.executeQuery |
Envie pedidos ExecuteQuery e PrepareQuery para uma instância. |
bigtable.instances.setIamPolicy |
Atualizar LCAs. |
bigtable.instances.update |
Atualize as definições de uma instância do Bigtable. |
Nome da autorização do Key Visualizer | Descrição |
---|---|
bigtable.keyvisualizer.get |
Obtenha informações do Key Visualizer sobre uma tabela, incluindo metadados sobre padrões de acesso e distribuições de chaves de linhas. |
bigtable.keyvisualizer.list |
Apresenta informações do visualizador de chaves disponíveis para uma tabela. |
Nome da autorização de acesso à localização | Descrição |
---|---|
bigtable.locations.list |
Liste as localizações do Bigtable. |
Nome da autorização da tabela | Descrição |
---|---|
bigtable.tables.checkConsistency |
Verifique se uma tabela replicada está atualizada. |
bigtable.tables.create |
Crie uma tabela. |
bigtable.tables.delete |
Elimine uma tabela. |
bigtable.tables.generateConsistencyToken |
Gere um token para verificar se uma tabela replicada está atualizada. |
bigtable.tables.get |
Receber informações sobre uma tabela, incluindo famílias de colunas e as respetivas definições individuais. |
bigtable.tables.getIamPolicy |
Ler ACLs de tabelas. Devolvidas como políticas IAM. |
bigtable.tables.list |
Listar tabelas numa instância. |
bigtable.tables.mutateRows |
Modificar linhas numa tabela ou truncar a tabela. |
bigtable.tables.readRows |
Ler linhas de uma tabela. Isto inclui informações sobre a tabela, como as famílias de colunas e as respetivas definições individuais. |
bigtable.tables.sampleRowKeys |
Obtenha um exemplo das teclas de linhas usadas numa tabela. |
bigtable.tables.setIamPolicy |
Atualize as LCAs da tabela. |
bigtable.tables.undelete |
Recuperar uma tabela eliminada. |
bigtable.tables.update |
Atualize as definições de uma tabela, incluindo as famílias de colunas e as respetivas definições individuais. |
Nome da autorização de acesso à localização | Descrição |
---|---|
bigtable.locations.list |
Liste as localizações do Bigtable. |
Nome da autorização para ver autorizada | Descrição |
---|---|
bigtable.authorizedViews.create |
Crie uma vista autorizada. |
bigtable.authorizedViews.delete |
Elimine uma vista autorizada. |
bigtable.authorizedViews.get |
Receba informações sobre uma vista autorizada. |
bigtable.authorizedViews.getIamPolicy |
Ver o controlo de acesso para uma vista autorizada. Devolvidas como políticas IAM. |
bigtable.authorizedViews.list |
Indicar as vistas autorizadas numa tabela. |
bigtable.authorizedViews.mutateRows |
Modifique linhas numa vista autorizada. |
bigtable.authorizedViews.readRows |
Ler linhas de uma vista autorizada. |
bigtable.authorizedViews.sampleRowKeys |
Obtenha uma amostra das chaves de linhas usadas numa visualização autorizada. |
bigtable.authorizedViews.setIamPolicy |
Atualize as políticas de controlo de acesso para uma vista autorizada. |
bigtable.authorizedViews.update |
Atualize as definições de uma vista autorizada. |
Nome da autorização da vista materializada contínua | Descrição |
---|---|
bigtable.materializedViews.create |
Crie uma vista materializada contínua. |
bigtable.materializedViews.delete |
Elimine uma vista materializada contínua. |
bigtable.materializedViews.get |
Obtenha informações sobre uma vista materializada contínua. |
bigtable.materializedViews.getIamPolicy |
Veja o controlo de acesso para uma vista materializada contínua. Devolvidas como políticas IAM. |
bigtable.materializedViews.list |
Liste as vistas materializadas contínuas numa instância. |
bigtable.materializedViews.readRows |
Ler linhas de uma vista materializada contínua. |
bigtable.materializedViews.sampleRowKeys |
Obtenha um exemplo das chaves de linhas usadas numa vista materializada contínua. |
bigtable.materializedViews.setIamPolicy |
Atualize as políticas de controlo de acesso para uma vista materializada contínua. |
bigtable.materializedViews.update |
Atualize as definições de uma vista materializada contínua. |
Funções predefinidas
Cada função predefinida é um conjunto de uma ou mais autorizações. Por exemplo, roles/bigtable.reader
fornece acesso só de leitura a informações sobre instâncias, clusters, tabelas e famílias de colunas do Bigtable, bem como aos dados contidos nas suas tabelas. Atribui funções a utilizadores ou grupos,
o que lhes permite realizar ações nos recursos do seu projeto.
A tabela seguinte apresenta as funções predefinidas para o Bigtable, incluindo uma lista das autorizações associadas a cada função:
Role | Permissions |
---|---|
Bigtable Administrator( Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators. Lowest-level resources where you can grant this role:
|
|
Bigtable Reader( Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios. Lowest-level resources where you can grant this role:
|
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|
Bigtable Viewer( Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable. Lowest-level resources where you can grant this role:
|
|
Funções personalizadas
Se as funções predefinidas para o Bigtable não satisfizerem os seus requisitos empresariais, pode definir as suas próprias funções personalizadas com as autorizações que especificar.
Se a sua função personalizada precisar de suportar o acesso à Google Cloud consola, tem de identificar as tarefas que os utilizadores vão realizar e, em seguida, garantir que a função personalizada tem as autorizações necessárias para cada tarefa, conforme mostrado na tabela seguinte. Se uma função personalizada não tiver todas as autorizações necessárias para uma tarefa e um utilizador tentar realizar essa tarefa, a consola não funciona corretamente. Google Cloud
Google Cloud tarefa da consola | Autorizações necessárias |
---|---|
Acesso básico à Google Cloud consola |
|
Crie uma instância ou um cluster |
Autorizações de acesso básicas, mais:
|
Modifique uma instância ou um cluster |
Autorizações de acesso básicas, mais:
|
Faça a gestão da configuração da replicação |
Autorizações de acesso básicas, mais:
|
Elimine uma instância ou um cluster |
Autorizações de acesso básicas, mais:
|
Monitorize uma instância através da visualização de gráficos |
Autorizações de acesso básicas, mais:
|
Crie e atualize uma tabela |
Autorizações de acesso básicas, mais:
|
Restaure uma cópia de segurança |
Autorizações de acesso básicas, mais:
|
Gestão de IAM
Esta secção explica como gerir funções de IAM e autorizações relacionadas ao nível do projeto, da instância, da tabela e da cópia de segurança.
Gestão de IAM ao nível do projeto
Ao nível do projeto, pode conceder, alterar e revogar funções do IAM através da Google Cloud consola, da API IAM ou da CLI Google Cloud. Consulte o artigo Conceder, alterar e revogar acesso para ver instruções detalhadas.
Depois de criar um projeto, pode conceder as funções do IAM ao nível do projeto aos utilizadores com base nos níveis de acesso específicos.
Funções necessárias
Antes de definir funções de IAM ao nível da instância, ao nível da tabela, ao nível da cópia de segurança, ao nível da visualização autorizada ou ao nível da visualização materializada contínua para um utilizador, certifique-se de que o utilizador tem, pelo menos, uma das seguintes funções de IAM ao nível do projeto:
- Visualizador do Bigtable (recomendado)
- Leitor do Bigtable
- Utilizador do Bigtable
- Administrador do Bigtable
Escolha uma função ao nível do projeto que não tenha mais autorizações do que o utilizador realmente precisa em todas as instâncias, tabelas, cópias de segurança, visualizações autorizadas ou visualizações materializadas contínuas no projeto. Por este motivo, deve conceder a função de leitor do Bigtable em quase todos os casos.
Se o utilizador não tiver, pelo menos, uma destas funções ao nível do projeto, não tem acesso ao Bigtable através da Google Cloud consola. A Google Cloud consola requer uma destas funções ao nível do projeto para poder obter informações sobre instâncias, clusters, tabelas ou cópias de segurança em nome do utilizador.
Conceder funções de IAM ao nível da instância
Ao nível da instância, pode conceder qualquer uma das funções predefinidas do Bigtable a um utilizador ou a uma conta de serviço. Também pode conceder quaisquer funções personalizadas que tenha definido.
Para conceder uma função predefinida ou personalizada a um utilizador ou a uma conta de serviço ao nível da instância:
Consola
- Aceda à página de instâncias do Bigtable na Google Cloud consola.
- Selecione as caixas junto às instâncias cujas funções quer gerir. É apresentado um painel de informações.
- No painel de informações, clique em Autorizações.
- Em Adicionar membros, comece a escrever o endereço de email do utilizador ou da conta de serviço que quer adicionar e, de seguida, clique no endereço de email do utilizador ou da conta de serviço.
- Clique na lista pendente Selecionar uma função e, de seguida, clique em Bigtable para selecionar uma função predefinida ou em Personalizado para selecionar uma função personalizada.
- Clique no nome de cada função que quer atribuir.
- Clique em Adicionar. São concedidas à conta de utilizador ou de serviço as funções que especificou ao nível da instância.
gcloud
-
Se não souber o ID da instância, use o comando
bigtable instances list
para ver uma lista das instâncias do seu projeto:
gcloud bigtable instances list
- Use o comando
bigtable instances set-iam-policy
:
gcloud bigtable instances set-iam-policy
INSTANCE_ID
POLICY_FILE
Forneça os seguintes dados:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ <var>POLICY_FILE</var>: Path to a local JSON or YAML file containing
a [valid IAM policy][iam-policy].
Conceder funções de IAM ao nível da tabela
Ao nível da tabela, pode conceder qualquer uma das funções predefinidas do Bigtable a um utilizador ou a uma conta de serviço. Também pode conceder quaisquer funções personalizadas que tenha definido.
Para conceder uma função predefinida ou personalizada a um utilizador ou a uma conta de serviço ao nível da tabela:
Consola
- Aceda à página de instâncias do Bigtable na Google Cloud consola.
Clique no nome da instância que contém a tabela cuja IAM está a definir.
Selecione Tabelas no painel de navegação do lado esquerdo.
Selecione as caixas junto às tabelas cujas funções quer gerir. É apresentado um painel de informações.
No painel de informações, clique em Autorizações.
Em Adicionar membros, comece a escrever o endereço de email do utilizador ou da conta de serviço que quer adicionar e, de seguida, clique no endereço de email do utilizador ou da conta de serviço.
Clique na lista pendente Selecionar uma função e, de seguida, clique em Bigtable para selecionar uma função predefinida ou em Personalizado para selecionar uma função personalizada.
Clique no nome de cada função que quer atribuir.
Clique em Adicionar. A conta de utilizador ou de serviço recebe as funções que especificou ao nível da tabela.
gcloud
-
Se não souber o ID da instância, use o comando
bigtable instances list
para ver uma lista das instâncias do seu projeto:
gcloud bigtable instances list
- Se não souber os IDs das tabelas da instância, use o comando
bigtable instances tables list
para ver uma lista de tabelas na instância.
gcloud bigtable instances tables list --instances=INSTANCE_ID
Forneça os seguintes dados:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
- Use o comando
bigtable instances tables set-iam-policy
:
gcloud bigtable instances tables set-iam-policy \TABLE_ID
--instance=INSTANCE_ID
POLICY_FILE
Forneça os seguintes dados:
+ <var>TABLE_ID</var>: The permanent identifier for the table.
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ <var>POLICY_FILE</var>: Path to a local JSON or YAML file containing
a [valid IAM policy][iam-policy].
Conceder funções de IAM ao nível da cópia de segurança
Ao nível da cópia de segurança, pode conceder qualquer uma das funções predefinidas do Bigtable a um utilizador ou a uma conta de serviço. Também pode conceder quaisquer funções personalizadas que tenha definido.
Para conceder uma função predefinida ou personalizada a um utilizador ou a uma conta de serviço ao nível da cópia de segurança:
gcloud
-
Se não souber o ID da instância, use o comando
bigtable instances list
para ver uma lista das instâncias do seu projeto:
gcloud bigtable instances list
- Se não souber os IDs de cópias de segurança numa instância, use o comando
bigtable instances backups list
para ver uma lista de cópias de segurança na instância.
gcloud bigtable backups list --instances=INSTANCE_ID
Forneça os seguintes dados:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
- Use o comando
gcloud bigtable backups set-iam-policy
:
gcloud bigtable backups set-iam-policy BACKUP_ID
--instance=INSTANCE_ID
--cluster=CLUSTER_ID
POLICY_FILE
Forneça os seguintes dados:
+ <var>BACKUP_ID</var>: The permanent identifier for the backup.
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ `TABLE_ID`: The permanent identifier for the table
+ `POLICY_FILE`: Path to a local JSON or YAML file containing a [valid
IAM policy][iam-policy].
Conceder funções IAM autorizadas ao nível da visualização
Ao nível da visualização autorizada, pode conceder qualquer uma das funções predefinidas do Bigtable a um utilizador ou a uma conta de serviço. Também pode conceder quaisquer funções personalizadas que tenha definido.
Para conceder uma função predefinida ou personalizada a um utilizador ou a uma conta de serviço ao nível da visualização autorizada, faça o seguinte:
Consola
- Abra a lista de instâncias do Bigtable na Google Cloud consola.
- Clique na instância que contém a visualização autorizada.
- No painel de navegação, clique em Bigtable Studio.
- No explorador, expanda a tabela e Visualizações autorizadas.
- Junto à vista autorizada que quer modificar, clique no menu de ações more_vert e, de seguida, clique em Conceder acesso.
- Adicione, pelo menos, um principal e selecione a função à qual esse principal ou grupo de principais deve ser atribuído.
- Opcional: para conceder acesso a funções adicionais, clique em Adicionar outra função e, de seguida, introduza o principal e a função para cada função adicional.
- Clique em Guardar.
gcloud
-
Se não souber o ID da instância, use o comando
bigtable instances list
para ver uma lista das instâncias do seu projeto:
gcloud bigtable instances list
- Se não souber os IDs das tabelas da instância, use o comando
bigtable instances tables list
para ver uma lista de tabelas na instância.
gcloud bigtable instances tables list --instances=INSTANCE_ID
- Se não souber o ID da vista, use o comando
bigtable authorized-views list
para ver uma lista de todas as vistas autorizadas da tabela.
gcloud bigtable instances tables authorized-views list
--instance=INSTANCE_ID
--table=TABLE_ID
- Use o comando
bigtable authorized-views set-iam-policy
:
gcloud bigtable authorized-views set-iam-policy TABLE_ID
AUTHORIZED_VIEW_ID --instance=INSTANCE_ID POLICY_FILE
Forneça os seguintes dados:
+ `INSTANCE_ID`:
The permanent identifier for the instance.
+ `TABLE_ID`: The permanent identifier for the table
+ `AUTHORIZED_VIEW_ID`: The permanent identifier for the view
+ `POLICY_FILE`: Path to a local JSON or YAML file containing a [valid
IAM policy][iam-policy].
Condições do IAM
As condições da IAM permitem-lhe definir e aplicar o controlo de acesso condicional baseado em atributos para alguns Google Cloud recursos, incluindo recursos do Bigtable.
No Bigtable, pode aplicar o acesso condicional com base nos seguintes atributos:
- Atributos de data/hora: use para definir o acesso temporário (com data de validade), agendado ou de duração limitada aos recursos do Bigtable. Por exemplo, pode permitir que um utilizador aceda a uma tabela até uma data especificada.
- Atributos de recursos: use para configurar o acesso condicional com base num nome de recurso, num tipo de recurso ou em atributos de serviço de recursos. No Bigtable, pode usar atributos de instâncias, clusters, tabelas, cópias de segurança e vistas autorizadas para configurar o acesso condicional. Por exemplo, pode permitir que um utilizador apenas faça a gestão de tabelas que comecem por um prefixo específico ou permitir que um utilizador aceda apenas a uma tabela específica.
Para mais informações sobre as condições do IAM, consulte a vista geral das condições.
O que se segue?
Saiba mais sobre a IAM.