Introdução ao IAM no BigQuery
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.
Informações gerais
Quando um principal (um usuário, grupo ou uma conta de serviço) chama uma API do Google Cloud, ele precisa ter as permissões apropriadas do IAM para usar o recurso. Para conceder as permissões necessárias a um principal, atribua um papel do IAM a ele.
Neste documento, descrevemos como usar papéis do IAM predefinidos e personalizados que permitem aos principais acessarem recursos do BigQuery.
Para se familiarizar com o gerenciamento de acesso no Google Cloud em geral, consulte a visão geral do IAM.
Tipos de papéis do IAM
Um papel é um conjunto de permissões. É possível usar os seguintes tipos de papéis no IAM para fornecer acesso a recursos do BigQuery:
- Papéis predefinidos são gerenciados pelo Google Cloud e permitem padrões de controle de acesso e casos de uso comuns.
- 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
Papéis do IAM no BigQuery
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 um ou mais papéis predefinidos ou personalizados para conceder a eles permissões para executar 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 Google 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.
Papéis predefinidos do IAM do BigQuery
A tabela abaixo mostra os papéis do IAM no BigQuery com uma lista correspondente de todas as permissões que cada papel inclui. Lembre-se que cada permissão se aplica a um tipo de recurso específico.
Role | Permissions |
---|---|
BigQuery Admin( Provides permissions to manage all resources within the project. Can manage all data within the project, and can cancel jobs from other users running within the project. Lowest-level resources where you can grant this role:
|
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.config.*
bigquery.connections.*
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.jobs.*
bigquery.models.*
bigquery.readsessions.*
bigquery.
bigquery.reservations.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.savedqueries.*
bigquery.tables.*
bigquery.transfers.*
bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Connection Admin(
|
bigquery.connections.*
|
BigQuery Connection User(
|
bigquery.connections.get bigquery. bigquery.connections.list bigquery.connections.use |
BigQuery Data Editor( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.datasets.updateTag bigquery.models.*
bigquery.routines.*
bigquery.tables.create bigquery.tables.createIndex bigquery.tables.createSnapshot bigquery.tables.delete bigquery.tables.deleteIndex bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list bigquery.tables.replicateData bigquery. bigquery.tables.update bigquery.tables.updateData bigquery.tables.updateTag resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Owner( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.models.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.tables.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also enumerate all datasets in the project. Additional roles, however, are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.models.export bigquery.models.getData bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.createSnapshot bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list bigquery.tables.replicateData resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Filtered Data Viewer( Access to view filtered table data defined by a row access policy |
bigquery. |
BigQuery Job User( Provides permissions to run jobs, including queries, within the project. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.jobs.create resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Metadata Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role provides permissions to:
Additional roles are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.get bigquery.tables.getIamPolicy bigquery.tables.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Read Session User( Provides the ability to create and use read sessions. Lowest-level resources where you can grant this role:
|
bigquery.readsessions.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Admin( Administer all BigQuery resources. |
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
recommender.
recommender.
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Editor( Manage all BigQuery resources, but cannot make purchasing decisions. |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Viewer( View all BigQuery resources but cannot make changes or purchasing decisions. |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery. bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list resourcemanager.projects.get resourcemanager.projects.list |
Bigquery Studio Admin Beta( Roll up Role of BigQuery Admin, Runtime Admin and Dataform Admin |
aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform.notebookRuntimes.*
aiplatform.operations.list bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.config.*
bigquery.connections.*
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.jobs.*
bigquery.models.*
bigquery.readsessions.*
bigquery.
bigquery.reservations.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.savedqueries.*
bigquery.tables.*
bigquery.transfers.*
bigquerymigration. dataform.*
resourcemanager.projects.get resourcemanager.projects.list |
Bigquery Studio User Beta( Roll up role of BigQuery Job User, Runtime User and Dataform Code Creator |
aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform.operations.list bigquery.config.get bigquery.jobs.create bigquery.readsessions.*
dataform.locations.*
dataform.repositories.create dataform.repositories.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery User( When applied to a dataset, this role provides the ability to read the dataset's metadata and list tables in the dataset. When applied to a project, this role also provides the ability to run jobs, including queries,
within the project. A principal with this role can enumerate their own jobs, cancel their own jobs, and
enumerate datasets within a project. Additionally, allows the creation of new datasets within the
project; the creator is granted the BigQuery Data Owner role ( Lowest-level resources where you can grant this role:
|
bigquery.bireservations.get bigquery. bigquery. bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.jobs.create bigquery.jobs.list bigquery.models.list bigquery.readsessions.*
bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list bigquery.routines.list bigquery.savedqueries.get bigquery.savedqueries.list bigquery.tables.list bigquery.transfers.get bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
Masked Reader( Masked read access to sub-resources tagged by the policy tag associated with a data policy, for example, BigQuery columns |
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.
Permissões do BigQuery
A tabela a seguir descreve as permissões disponíveis no BigQuery. Elas estão inclusas em papéis predefinidos e podem ser usadas na definição de papéis personalizados.
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.config.update |
Criar uma configuração. |
bigquery.config.get |
Conseguir detalhes sobre uma configuração. |
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. |
bigquery.dataPolicies.delete |
Exclua políticas de dados. |
bigquery.dataPolicies.get |
Receba metadados sobre políticas de dados. |
bigquery.dataPolicies.getIamPolicy |
Leia as permissões do IAM de uma política de dados. |
bigquery.dataPolicies.list |
Liste as políticas de dados em um projeto. |
bigquery.dataPolicies.maskedGet |
Veja os dados mascarados de uma coluna com uma tag de política associada a uma política de dados. |
bigquery.dataPolicies.setIamPolicy |
Defina as permissões do IAM de uma política de dados. |
bigquery.dataPolicies.update |
Atualizar metadados para uma política de dados. |
bigquery.datasets.create |
Cria novos conjuntos de dados vazios. |
bigquery.datasets.createTagBinding |
Cria vinculações de tags em um conjunto de dados. |
bigquery.datasets.delete |
Excluir um conjunto de dados. |
bigquery.datasets.deleteTagBinding |
Exclui vinculações de tags em um conjunto de dados |
bigquery.datasets.get |
Recebe metadados sobre um conjunto de dados. |
bigquery.datasets.getIamPolicy |
Necessário no console do Google Cloud para dar ao usuário a opção de receber as permissões do IAM de um conjunto de dados. Falha ao abrir. A capacidade de realizar a operação
de conseguir as permissões é controlada pela
permissão bigquery.datasets.get . |
bigquery.datasets.link |
Criar um conjunto de dados vinculado. |
bigquery.datasets.listTagBindings |
Lista as vinculações de tags em um conjunto de dados. |
bigquery.datasets.setIamPolicy |
Necessário no console do Google Cloud para dar ao usuário a opção de definir as permissões do IAM de um conjunto de dados. Falha ao abrir. A capacidade de realizar a operação
de definir as permissões é controlada pela permissão
bigquery.datasets.update . |
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 usando a API BigQuery Storage Read. |
bigquery.readsessions.getData |
Lê dados de uma sessão de leitura usando a API Storage Read. |
bigquery.readsessions.update |
Atualiza uma sessão de leitura usando a API Storage Read. |
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 é necessária no projeto proprietário e no recurso atribuído. |
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 essa 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 de 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.replicateData |
Replicar os dados da tabela. Essa permissão é necessária para criar visualizações materializadas de réplicas. |
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
.
Permissões para tarefas do BigQuery ML
A tabela a seguir descreve as permissões necessárias para tarefas comuns do BigQuery ML.
Permissão | Descrição |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
Criar um novo modelo usando a instrução CREATE MODEL |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
Substituir um modelo atual usando a instrução CREATE OR REPLACE MODEL |
bigquery.models.delete |
Excluir modelo usando a API models.delete |
bigquery.jobs.create bigquery.models.delete |
Excluir modelo usando a instrução DROP MODEL |
bigquery.models.getMetadata |
Receber metadados do modelo usando a API models.get |
bigquery.models.list |
Listar modelos e metadados em modelos usando a API models.list |
bigquery.models.updateMetadata |
Atualize os metadados do modelo usando a API models.delete. Se você definir ou atualizar um prazo de validade diferente de zero para o modelo, a permissão bigquery.models.delete também será necessária. |
bigquery.jobs.create bigquery.models.getData
|
Execute avaliação, previsão e inspeções de modelos e recursos usando funções como ML.EVALUATE , ML.PREDICT , ML.TRAINING_INFO e ML.WEIGHTS . |
bigquery.jobs.create bigquery.models.export
|
Exportar um modelo |
A seguir
- 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.