Permissões e papéis predefinidos

Nesta página, fornecemos informações sobre papéis e permissões do Cloud Identity and Access Management do BigQuery.

Aqui você encontra os papéis e permissões relevantes para cada um dos produtos complementares do BigQuery:

  • BigQuery ML
  • Serviço de transferência de dados do BigQuery
  • BigQuery BI Engine

Para informações sobre controles de acesso no BigQuery ML, consulte Controle de acesso na documentação do BigQuery ML.

Visão geral

Quando uma identidade 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 Cloud IAM do BigQuery que podem ser concedidos a identidades para acessar recursos do BigQuery.

Tipos de papéis do Cloud IAM

Há três tipos de papéis no Cloud Identity and Access Management:

  • Papéis primários incluem os papéis de proprietário, editor e visualizador que existiam antes da introdução do Cloud Identity and Access Management.
  • 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 granular 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 primário, predefinido ou personalizado, use um dos métodos a seguir:

Quando você atribui papéis predefinidos e primários a um usuário, as permissões concedidas são uma união das permissões de cada papel.

Para mais informações sobre como usar o Cloud IAM para acessar recursos, consulte Como conceder, alterar e revogar o acesso a recursos na documentação do Cloud Identity and Access Management.

Para informações sobre como criar papéis personalizados, consulte Como criar e gerenciar papéis personalizados na documentação do Cloud Identity and Access Management.

Permissões do BigQuery e papéis predefinidos do Cloud IAM

Para conceder acesso a um recurso do BigQuery, atribua um ou mais papéis a um usuário, grupo ou conta de serviço. Ao atribuir papéis no nível da organização e do projeto, você fornece permissão para executar jobs do BigQuery ou gerenciar todos os recursos do BigQuery de um projeto.

Também é possível atribuir papéis no nível do conjunto de dados para fornecer acesso a somente um ou mais conjuntos de dados. Na hierarquia de políticas do Cloud IAM, os conjuntos de dados do BigQuery são recursos filhos de projetos. Tabelas e visualizações são recursos filhos de conjuntos de dados. Eles herdam permissões do respectivo conjunto de dados pai.

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.

Permissões do BigQuery

A tabela a seguir descreve as permissões disponíveis no BigQuery.

Permissão Descrição
bigquery.jobs.create Executa jobs (incluindo consultas) no projeto.
bigquery.jobs.listAll Lista todos os jobs e recuperar metadados em qualquer job enviado por qualquer usuário.*
bigquery.jobs.list Lista 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.get Obtém dados e metadados em qualquer job.*
bigquery.jobs.update Cancela qualquer job.*
bigquery.datasets.create Cria novos conjuntos de dados vazios.
bigquery.datasets.delete Excluir um conjunto de dados.
bigquery.datasets.get Receber metadados sobre um conjunto de dados.
bigquery.datasets.update Atualizar metadados para um conjunto de dados.
bigquery.tables.create Criar novas tabelas.
bigquery.tables.list Listar tabelas e metadados em tabelas.
bigquery.tables.delete Excluir tabelas.
bigquery.tables.get Recebe metadados de tabela.
Para ver os dados da tabela, você precisabigquery.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.export Exporta dados de tabela do BigQuery.
bigquery.tables.update

Atualiza os metadados da tabela.
Para atualizar os dados da tabela, você precisa bigquery.tables.updateData.

bigquery.tables.updateData

Atualiza os dados da tabela.
Para atualizar os metadados da tabela, você precisa bigquery.tables.update.

bigquery.routines.create (Beta) Cria novas rotinas (funções e procedimentos armazenados).
bigquery.routines.list (Beta) Lista rotinas e metadados em rotinas.
bigquery.routines.delete (Beta) Exclui rotinas.
bigquery.routines.get (Beta) Recebe definições e metadados de rotina.
bigquery.routines.update (Beta)

Atualiza definições e metadados de rotina.

bigquery.transfers.get Receber metadados de transferência.
bigquery.transfers.update Criar, atualizar e excluir as transferências.
bigquery.savedqueries.create Criar consultas salvas.
bigquery.savedqueries.get Receber metadados em consultas salvas.
bigquery.savedqueries.list Listar de consultas salvas.
bigquery.savedqueries.update Atualizar consultas salvas.
bigquery.savedqueries.delete Exclui consultas salvas.
bigquery.readsessions.create (Beta) Cria uma nova sessão de leitura por meio da API BigQuery Storage.
bigquery.connections.create (Beta) Cria novas conexões em um projeto.
bigquery.connections.get (Beta) Recebe metadados de conexão. As credenciais são excluídas.
bigquery.connections.list (Beta) Lista conexões em um projeto.
bigquery.connections.use (Beta) Usa uma configuração de conexão para se conectar a uma fonte de dados remota.
bigquery.connections.update (Beta) Atualiza uma conexão e respectivas credenciais.
bigquery.connections.delete (Beta) Exclui uma conexão.
bigquery.reservations.create (Beta) Cria uma reserva em um projeto.
bigquery.reservations.list (Beta) Lista todas as reservas em um projeto.
bigquery.reservations.get (Beta) Recupera detalhes sobre uma reserva.
bigquery.reservations.delete (Beta) Exclui uma reserva.
bigquery.reservations.update (Beta) Atualiza as propriedades de uma reserva.
bigquery.capacityCommitments.create (Beta) Cria um compromisso de capacidade no projeto.
bigquery.capacityCommitments.list (Beta) Lista todos os compromissos de capacidade em um projeto.
bigquery.capacityCommitments.get (Beta) Recupera detalhes sobre um compromisso de capacidade.
bigquery.capacityCommitments.delete (Beta) Exclui um compromisso de capacidade.
bigquery.reservationAssignments.create (Beta)

Cria uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência.
Para mover uma atribuição de reserva, é necessário bigquery.reservationAssignments.create no projeto do novo proprietário e no recurso de transferência.

bigquery.reservationAssignments.delete (Beta)

Exclui uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência.
Para mover uma atribuição de reserva, é necessário bigquery.reservationAssignments.delete no projeto do antigo proprietário e no recurso de transferência.

bigquery.reservationAssignments.list (Beta)

Lista as atribuições de reserva.
Para pesquisar uma atribuição de reserva para um determinado projeto, pasta ou organização, você precisa de bigquery.reservationAssignments.list no recurso de transferência.

* Para qualquer job criado, você tem automaticamente o equivalente às permissões bigquery.jobs.get e bigquery.jobs.update.

Papéis predefinidos do Cloud IAM do BigQuery

Na tabela abaixo, veja os papéis predefinidos do Cloud IAM do BigQuery com uma lista correspondente de todas as permissões incluídas em cada um. Cada permissão se aplica a um tipo específico de recurso.

Papéis do BigQuery

Papel Nome Descrição Permissões Menor recurso
roles/
bigquery.admin
Administrador do BigQuery Concede permissões para gerenciar todos os recursos dentro do projeto. É possível gerenciar todos os dados no projeto e cancelar jobs de outros usuários que estejam sendo executados. bigquery.*
resourcemanager.projects.get resourcemanager.projects.list
Projeto
roles/
bigquery.connectionAdmin
Administrador de conexão do BigQueryBeta bigquery.connections.*
roles/
bigquery.connectionUser
Usuário de conexão do BigQueryBeta bigquery.connections.get
bigquery.connections.getIamPolicy bigquery.connections.list bigquery.connections.use
roles/
bigquery.dataEditor
Editor de dados do BigQuery

Quando aplicado a um conjunto de dados, o dataEditor concede permissões para:

  • ler os metadados do conjunto de dados e listar tabelas nele;
  • criar, atualizar, salvar e excluir as tabelas do conjunto de dados.

Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados.

bigquery.datasets.create
bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.datasets.updateTag bigquery.models.* bigquery.routines.* bigquery.tables.create bigquery.tables.delete bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.list bigquery.tables.update bigquery.tables.updateData bigquery.tables.updateTag resourcemanager.projects.get resourcemanager.projects.list
Conjunto de dados
roles/
bigquery.dataOwner
Proprietário de dados do BigQuery

Quando aplicado a um conjunto de dados, o dataOwner concede permissões para:

  • ler, atualizar e excluir o conjunto de dados;
  • criar, atualizar, salvar e excluir as tabelas do conjunto de dados.

Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados.

bigquery.datasets.*
bigquery.models.* bigquery.routines.* bigquery.tables.* resourcemanager.projects.get resourcemanager.projects.list
Conjunto de dados
roles/
bigquery.dataViewer
Leitor de dados do BigQuery

Quando aplicado a um conjunto de dados, o dataViewer concede permissões para:

  • ler os metadados do conjunto de dados e listar tabelas nele;
  • ler dados e metadados das tabelas do conjunto de dados.

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.

bigquery.datasets.get
bigquery.datasets.getIamPolicy bigquery.models.getData bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.list resourcemanager.projects.get resourcemanager.projects.list
Conjunto de dados
roles/
bigquery.jobUser
Usuário de jobs do BigQuery Concede permissões para executar jobs, incluindo consultas, no projeto. O papel jobUser enumera e cancela os próprios jobs. bigquery.jobs.create
resourcemanager.projects.get resourcemanager.projects.list
Projeto
roles/
bigquery.metadataViewer
Leitor de metadados do BigQuery

Quando aplicado no nível do projeto ou da organização, o papel metadataViewer fornece permissões para:

  • listar todos os conjuntos de dados e ler metadados para todos os conjuntos de dados no projeto;
  • listar todas as tabelas e visualizações e ler metadados para todas as tabelas e visualizações no projeto.

São necessários papéis extras para permitir a execução de jobs.

bigquery.datasets.get
bigquery.datasets.getIamPolicy bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.get bigquery.tables.list resourcemanager.projects.get resourcemanager.projects.list
Projeto
roles/
bigquery.readSessionUser
Usuário de sessão de leitura do BigQueryBeta Acesso para criar e usar sessões de leitura bigquery.readsessions.*
resourcemanager.projects.get resourcemanager.projects.list
roles/
bigquery.user
Usuário do BigQuery Concede permissões para executar jobs, incluindo consultas, no projeto. Esse papel do usuário enumera e cancela os próprios jobs e enumera conjuntos de dados dentro de um projeto, Além disso, permite a criação de novos conjuntos de dados dentro do projeto; o criador recebe o papel bigquery.dataOwner para esses novos conjuntos de dados. bigquery.config.get
bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.jobs.create bigquery.jobs.list bigquery.models.list bigquery.readsessions.* bigquery.routines.list bigquery.savedqueries.get bigquery.savedqueries.list bigquery.tables.list bigquery.transfers.get resourcemanager.projects.get resourcemanager.projects.list
Projeto

Papéis primários do BigQuery

Para informações sobre papéis primários do BigQuery, consulte Papéis primários e permissões do BigQuery.

Papéis personalizados do BigQuery

Para criar um papel personalizado do Cloud IAM para o BigQuery, siga as etapas descritas na documentação de papéis personalizados do Cloud IAM.

Próximas etapas