Controle de acesso com o IAM
Nesta página, você encontra informações sobre papéis e permissões do gerenciamento de identidade e acesso (IAM, na sigla em inglês) do BigQuery. Antes de configurar o controle de acesso para o BigQuery, conheça como gerenciar o acesso ao Google Cloud com o IAM.
Talvez você também precise de orientações detalhadas sobre papéis e permissões para estes serviços do BigQuery:
Visão geral
Quando uma identidade (um usuário ou uma conta de serviço) chama uma API do Google Cloud, o BigQuery exige que a identidade tenha as permissões apropriadas para usar o recurso. É possível conceder permissões ao atribuir papéis a um usuário, grupo ou conta de serviço.
Nesta página, descrevemos os papéis do IAM do BigQuery que podem ser concedidos a identidades para acessar recursos do BigQuery.
Tipos de papéis do IAM
É possível gerenciar os seguintes tipos de papéis no IAM:
- Papéis predefinidos fornecem acesso granular a um serviço específico e são gerenciados pelo Google Cloud. Eles destinam-se a oferecer suporte a casos de uso comuns e padrões de controle de acesso.
- Papéis personalizados dão acesso de acordo com uma lista de permissões especificada pelo usuário.
Para determinar se uma ou mais permissões estão incluídas em um papel, use um dos seguintes métodos:
- A referência de pesquisa de permissões do IAM
- O comando
gcloud iam roles describe
- O método
roles.get()
na API IAM
Quando você atribui vários tipos de papel a um usuário, as permissões concedidas são uma combinação das permissões de cada papel.
Para mais informações sobre como usar o IAM para acessar recursos, consulte Como conceder, alterar e revogar acesso a recursos na documentação do IAM.
Para informações sobre como criar papéis personalizados, consulte Como criar e gerenciar papéis personalizados na documentação do IAM
Permissões do BigQuery e papéis predefinidos do IAM
As permissões não são atribuídas diretamente a usuários, grupos ou contas de serviço. Em vez disso, usuários, grupos ou contas de serviço recebem acesso a papéis predefinidos ou personalizados para conceder a eles permissões para realizar ações em recursos.
É possível conceder acesso nos seguintes níveis de recursos do BigQuery:
- Organização ou nível de projeto do Google Cloud
- Nível do conjunto de dados
- Nível de tabela ou visualização
Papéis aplicados no nível da organização ou do projeto do Cloud
Ao atribuir papéis no nível da organização e do projeto, você concede permissão para executar jobs do BigQuery ou acessar todos os recursos do BigQuery de um projeto.
Papéis aplicados no nível do conjunto de dados
É possível atribuir papéis no nível do conjunto de dados para fornecer acesso a um conjunto de dados específico, sem dar acesso total aos recursos do projeto. Na hierarquia de políticas do Cloud IAM, os conjuntos de dados do BigQuery são recursos filhos de projetos. Para mais informações sobre como atribuir papéis no nível do conjunto de dados, consulte Como controlar o acesso a conjuntos de dados.
Papéis aplicados a recursos individuais dentro de conjuntos de dados
É possível atribuir papéis individualmente a determinados tipos de recursos dentro de conjuntos de dados, sem fornecer acesso total aos recursos do conjunto de dados.
Os papéis podem ser aplicados a recursos individuais dos seguintes tipos:
- tabelas
- visualizações
Os papéis não podem ser aplicados a recursos individuais dos seguintes tipos:
- rotinas
- modelos
Para mais informações sobre como atribuir papéis no nível da tabela ou da visualização, consulte Como controlar o acesso a tabelas ou visualizações.
Permissões do BigQuery
A tabela a seguir descreve as permissões disponíveis no BigQuery.
Permissão | Descrição |
---|---|
bigquery.bireservations.get |
Lê as reservas do mecanismo de BI. |
bigquery.bireservations.update |
Atualiza reservas do BI Engine. |
bigquery.capacityCommitments.create |
Cria um compromisso de capacidade no projeto. |
bigquery.capacityCommitments.delete |
Exclui um compromisso de capacidade. |
bigquery.capacityCommitments.get |
Recupera detalhes sobre um compromisso de capacidade. |
bigquery.capacityCommitments.list |
Lista todos os compromissos de capacidade em um projeto. |
bigquery.capacityCommitments.update |
Atualiza todos os compromissos de capacidade em um projeto. |
bigquery.connections.create |
Cria novas conexões em um projeto. |
bigquery.connections.delete |
Exclui uma conexão. |
bigquery.connections.get |
Recebe metadados de conexão. As credenciais são excluídas. |
bigquery.connections.list |
Lista conexões em um projeto. |
bigquery.connections.update |
Atualiza uma conexão e as credenciais dela. |
bigquery.connections.updateTag |
Atualiza tags para uma conexão. |
bigquery.connections.use |
Usa uma configuração de conexão para se conectar a uma fonte de dados remota. |
bigquery.connections.delegate |
Delega conexão para criar tabelas externas autorizadas e funções remotas. |
bigquery.dataPolicies.create |
Crie novas políticas de dados. Essa permissão está em visualização. |
bigquery.dataPolicies.delete |
Exclua políticas de dados. Essa permissão está em visualização. |
bigquery.dataPolicies.get |
Receba metadados sobre políticas de dados. Essa permissão está em visualização. |
bigquery.dataPolicies.getIamPolicy |
Leia as permissões do IAM de uma política de dados. Essa permissão está em visualização. |
bigquery.dataPolicies.list |
Liste as políticas de dados em um projeto. Essa permissão está em visualização. |
bigquery.dataPolicies.maskedGet |
Veja os dados mascarados de uma coluna com uma tag de política associada a uma política de dados. Essa permissão está em visualização. |
bigquery.dataPolicies.setIamPolicy |
Defina as permissões do IAM de uma política de dados. Essa permissão está em Visualização |
bigquery.dataPolicies.update |
Atualizar metadados para uma política de dados. Essa permissão está em visualização. |
bigquery.datasets.create |
Cria novos conjuntos de dados vazios. |
bigquery.datasets.delete |
Excluir um conjunto de dados. |
bigquery.datasets.get |
Recebe metadados sobre um conjunto de dados. |
bigquery.datasets.getIamPolicy |
Ler as permissões de IAM de um conjunto de dados. |
bigquery.datasets.link |
Criar um conjunto de dados vinculado. |
bigquery.datasets.setIamPolicy |
Alterar as permissões de IAM de um conjunto de dados. |
bigquery.datasets.update |
Atualiza metadados de um conjunto de dados. |
bigquery.datasets.updateTag (Beta) |
Atualizar tags para um conjunto de dados. |
bigquery.jobs.create |
Executa jobs (incluindo consultas) no projeto. |
bigquery.jobs.get |
Recebe dados e metadados em qualquer job.1 |
bigquery.jobs.list |
Listar todos os jobs e recuperar metadados em qualquer job enviado por qualquer usuário. Em jobs enviados por outros usuários, detalhes e metadados são editados. |
bigquery.jobs.listAll |
Listar todos os jobs e recuperar metadados em qualquer job enviado por qualquer usuário. |
bigquery.jobs.listExecutionMetadata (Beta) |
Lista todos os metadados de execução de job (sem informações confidenciais) em qualquer job enviado por qualquer usuário. Aplicada apenas no nível da organização e usada pela IU do administrador. |
bigquery.jobs.delete |
Exclui metadados de um job. |
bigquery.jobs.update |
Cancela qualquer job.1 |
bigquery.models.create |
Cria novos modelos. |
bigquery.models.delete |
Exclui modelos. |
bigquery.models.getData |
Recebe dados do modelo. Para ver os metadados do modelo, você precisa de bigquery.models.getMetadata . |
bigquery.models.getMetadata |
Recebe metadados do modelo. Para ver os dados do modelo, você precisa de bigquery.models.getData . |
bigquery.models.list |
Lista modelos e metadados em modelos. |
bigquery.models.updateData |
Atualiza os dados do modelo. Para atualizar os metadados do modelo, você precisa de bigquery.models.updateMetadata . |
bigquery.models.updateMetadata |
Atualiza os metadados do modelo. Para atualizar os dados do modelo, você precisa de
bigquery.models.updateData . |
bigquery.models.export |
Exportar um modelo. |
bigquery.readsessions.create |
Cria uma nova sessão de leitura por meio da API BigQuery Storage. |
bigquery.readsessions.getData |
Lê dados de uma sessão de leitura por meio da Storage Read API. |
bigquery.readsessions.update |
Atualiza uma sessão de leitura por meio da Storage Read API. |
bigquery.reservations.create |
Cria uma reserva em um projeto. |
bigquery.reservations.delete |
Exclui uma reserva. |
bigquery.reservations.get |
Recupera detalhes sobre uma reserva. |
bigquery.reservations.list |
Lista todas as reservas em um projeto. |
bigquery.reservations.update |
Atualiza as propriedades de uma reserva. |
bigquery.reservationAssignments.create |
Cria uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência. |
bigquery.reservationAssignments.delete |
Exclui uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência. |
bigquery.reservationAssignments.list |
Lista todas as atribuições de reserva em um projeto. |
bigquery.reservationAssignments.search |
Pesquisa uma atribuição de reserva para um determinado projeto, pasta ou organização. |
bigquery.rowAccessPolicies.create |
Cria uma nova política de acesso no nível da linha em uma tabela. |
bigquery.rowAccessPolicies.delete |
Exclui uma política de acesso no nível da linha de uma tabela. |
bigquery.rowAccessPolicies.getFilteredData |
Recebe dados em uma tabela que você quer que fiquem visíveis apenas para os principais da lista de beneficiários de uma política de acesso no nível da linha. Recomendamos que esta permissão seja concedida apenas em um recurso de política de acesso no nível da linha. |
bigquery.rowAccessPolicies.list |
Lista todas as políticas de acesso no nível da linha em uma tabela. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Acesse dados históricos em uma tabela que tenha, ou já tenha sido, políticas de acesso no nível da linha. |
bigquery.rowAccessPolicies.getIamPolicy |
Recebe as permissões do IAM de uma política de acesso da linha. |
bigquery.rowAccessPolicies.setIamPolicy |
Define as permissões de IAM da política de acesso da linha. |
bigquery.rowAccessPolicies.update |
Recria uma política de acesso no nível da linha. |
bigquery.routines.create |
Cria novas rotinas (funções e procedimentos armazenados). |
bigquery.routines.delete |
Exclui rotinas. |
bigquery.routines.get |
Recebe definições e metadados de rotina. |
bigquery.routines.list |
Lista rotinas e metadados em rotinas. |
bigquery.routines.update |
Atualiza definições e metadados de rotina. |
bigquery.routines.updateTag |
Atualiza as tags de uma rotina. |
bigquery.savedqueries.create |
Cria consultas salvas. |
bigquery.savedqueries.delete |
Exclui consultas salvas. |
bigquery.savedqueries.get |
Recebe metadados em consultas salvas. |
bigquery.savedqueries.list |
Listar de consultas salvas. |
bigquery.savedqueries.update |
Atualiza consultas salvas. |
bigquery.tables.create |
Cria novas tabelas. |
bigquery.tables.createIndex |
Cria índices de pesquisa em tabelas. |
bigquery.tables.createSnapshot
|
Cria novos snapshots da tabela. |
bigquery.tables.delete |
Exclui tabelas. |
bigquery.tables.deleteIndex |
Solta índices de pesquisa em tabelas. |
bigquery.tables.deleteSnapshot
|
Exclui snapshots da tabela. |
bigquery.tables.export |
Exporta dados de tabela do BigQuery. |
bigquery.tables.get |
Recebe metadados de tabela. Para ver os dados da tabela, você precisa bigquery.tables.getData . |
bigquery.tables.getData |
Recebe dados da tabela. Essa permissão é obrigatória para consultar dados da tabela. Para ver os metadados da tabela, você precisa bigquery.tables.get . |
bigquery.tables.getIamPolicy |
Faz a leitura da política do Cloud IAM de uma tabela. |
bigquery.tables.list |
Lista tabelas e metadados em tabelas. |
bigquery.tables.restoreSnapshot
|
Restaura snapshots da tabela. |
bigquery.tables.setCategory |
Define as tags de política no esquema da tabela. |
bigquery.tables.setIamPolicy |
Altera a política do Cloud IAM de uma tabela. |
bigquery.tables.update |
Atualiza os metadados da tabela. |
bigquery.tables.updateData |
Atualiza os dados da tabela. |
bigquery.tables.updateTag (Beta) |
Atualize as tags de uma tabela. |
bigquery.transfers.get |
Recebe metadados de transferência. |
bigquery.transfers.update |
Cria, atualiza e exclui transferências. |
1Para qualquer job criado, você tem automaticamente o
equivalente às permissões
bigquery.jobs.get
e bigquery.jobs.update
.
Papéis predefinidos do IAM do BigQuery
A tabela abaixo mostra os papéis de IAM do BigQuery com uma lista correspondente de todas as permissões que cada papel inclui. Cada permissão se aplica a um tipo específico de recurso.
Papel | Permissões |
---|---|
Administrador do BigQuery
Concede permissões para gerenciar todos os recursos no projeto. Pode gerenciar todos os dados no projeto e cancelar jobs de outros usuários que estejam sendo executados. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Administrador de conexão do BigQuery
|
|
Usuário de conexão do BigQuery
|
|
Editor de dados do BigQuery
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Proprietário de dados do BigQuery
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Visualizador de dados do BigQuery
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também enumera todos os conjuntos de dados no projeto. No entanto, são necessários papéis extras para permitir a execução de jobs. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Visualizador de dados filtrados do BigQuery
Acesso de visualização de dados de tabelas filtrados definido por uma política de acesso de linha |
|
Usuário de jobs do BigQuery
Concede permissões para executar jobs, incluindo consultas, no projeto. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Leitor de metadados do BigQuery
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel fornece permissões para:
São necessários papéis extras para permitir a execução de jobs. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Usuário de sessão de leitura do BigQuery
Acesso para criar e usar sessões de leitura |
|
Administrador de recursos do BigQuery
Administra todos os recursos do BigQuery. |
|
Editor de recursos do BigQuery
Gerencia todos os recursos do BigQuery, mas não pode tomar decisões de compra. |
|
Visualizador de recursos do BigQuery
Visualiza todos os recursos do BigQuery, mas não pode editar ou tomar decisões de compra. |
|
Usuário do BigQuery
Quando aplicado a um conjunto de dados, esse papel fornece a capacidade de ler os metadados do conjunto de dados e listar as tabelas no conjunto de dados. Quando aplicado a um projeto, esse papel também dá a capacidade de executar jobs, incluindo consultas, dentro do projeto. Um participante com esse papel consegue enumerar e cancelar os próprios jobs, bem
como enumerar conjuntos de dados em um projeto. Além disso, permite a criação de novos conjuntos de dados no projeto. O criador recebe o papel de proprietário de dados do BigQuery ( Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Leitor mascarado
Beta
Fornece acesso de leitura mascarada a sub-recursos com a tag de política associada a uma política de dados. Por exemplo, colunas do BigQuery |
|
Papéis personalizados do BigQuery
Para criar um papel personalizado do IAM para o BigQuery, siga as etapas descritas na documentação de papéis personalizados do IAM.
Papéis básicos do BigQuery
Para informações sobre os papéis básicos do BigQuery, consulte Papéis básicos e permissões do BigQuery.
A seguir
- Consulte os exemplos de controle de acesso do BigQuery.
- Para mais informações sobre como atribuir papéis no nível do conjunto de dados, consulte Como controlar o acesso a conjuntos de dados.
- Para mais informações sobre como atribuir papéis no nível de tabela ou visualização, consulte Como controlar o acesso a tabelas e visualizações.