Visualizações autorizadas
Neste documento, descrevemos como criar visualizações autorizadas e visualizações materializadas autorizadas no BigQuery.
Visão geral
Como administrador de dados, você pode criar uma visualização autorizada para compartilhar um subconjunto de dados em um conjunto de dados com usuários e grupos específicos (principais). Os principais podem ver os dados compartilhados e executar consultas neles, mas não podem acessar o conjunto de dados de origem diretamente.
Tipos de visualização
Uma visualização lógica é o tipo de visualização padrão do BigQuery, e uma visualização materializada é uma visualização pré-calculada que armazena em cache periodicamente os resultados de uma consulta para aumentar o desempenho e a eficiência.
Uma visualização autorizada para uma visualização lógica é chamada de visualização autorizada, mas uma visualização autorizada para uma visualização materializada é chamada de visualização materializada autorizada.
Se uma visualização lógica depender de uma consulta grande ou computacionalmente cara, crie uma visualização materializada. No entanto, consultar apenas um subconjunto dos seus dados ou usar outras técnicas pode melhorar o desempenho sem a necessidade de criar uma visualização materializada.
Para saber mais, acesse os recursos a seguir:
Etapas gerais para criar visualizações autorizadas
Para criar e compartilhar uma visualização, confira estas etapas gerais, que são as mesmas para visualizações lógicas e materializadas autorizadas.
- Crie um conjunto de dados para conter os dados de origem.
- Execute uma consulta para carregar dados em uma tabela de destino no conjunto de dados de origem.
- Crie um conjunto de dados para conter sua visualização autorizada.
- Crie uma visualização autorizada com uma consulta SQL que restrinja as colunas que os analistas de dados podem ver nos resultados da consulta.
- Conceda aos analistas de dados permissão para executar jobs de consulta.
- Conceda aos analistas de dados acesso ao conjunto de dados que contém a visualização autorizada.
- Conceda à visualização autorizada acesso ao conjunto de dados de origem.
Alternativas
Embora as visualizações autorizadas sejam flexíveis e escalonáveis, um dos seguintes métodos pode ser mais adequado ao seu caso de uso:
- Defina políticas no nível da linha em uma tabela.
- Defina políticas no nível da coluna em uma tabela.
- Armazene os dados em uma tabela separada.
- Compartilhar todas as visualizações em um conjunto de dados (conjuntos de dados autorizados).
Usar segurança no nível da linha ou da coluna ou tabelas separadas
Ao definir políticas de acesso no nível da linha em uma tabela ou criar uma tabela separada para armazenar dados sensíveis, um administrador de dados pode restringir a capacidade de um usuário de visualizar esses dados. Armazenar dados em uma tabela separada isola os dados e remove a capacidade de ver quantas linhas existem na tabela.
Além disso, ao criar e aplicar tags de política, um administrador de dados pode restringir a capacidade do usuário de visualizar colunas em uma tabela.
Armazenar dados em uma tabela separada é o método mais seguro, mas menos flexível. Definir políticas no nível da linha é flexível e seguro, enquanto compartilhar visualizações autorizadas é flexível e oferece o melhor desempenho.
Para comparar esses métodos em detalhes, consulte os seguintes recursos:
- Comparação de visualizações autorizadas, segurança no nível da linha e tabelas separadas
- Introdução à segurança no nível da linha
- Exemplos de casos de uso para segurança no nível da linha
- Introdução ao controle de acesso no nível da coluna
Compartilhar todas as visualizações em um conjunto de dados
Para conceder a uma coleção de visualizações acesso a um conjunto de dados sem precisar autorizar cada visualização individual, é possível agrupar as visualizações em um conjunto de dados e fornecer o conjunto de dados a seguir. que contém o acesso de visualizações ao conjunto de dados que contém os dados.
É possível conceder acesso aos principais ao conjunto de dados que contém o grupo de visualizações ou a visualizações individuais no conjunto de dados, conforme necessário. Um conjunto de dados que tem acesso a outro conjunto de dados é chamado de conjunto de dados autorizado. O conjunto de dados que autoriza outro conjunto de dados a acessar os dados é chamado de conjunto de dados compartilhado.
Para mais informações, consulte Conjuntos de dados autorizados e Autorizar um conjunto de dados.
Limitações
- Ao criar uma visualização autorizada ou materializada autorizada em outro conjunto de dados, o conjunto de dados de origem e o conjunto de dados de visualização autorizada precisam estar no mesmo local regional.
- Quando você exclui uma visualização autorizada, pode levar até 24 horas para removê-la da lista. Durante esse período, não é possível acessar a visualização autorizada, mas a visualização autorizada excluída pode aparecer na lista de visualizações e será contabilizada no limite de visualizações autorizadas. Esse limite poderá impedir a criação de outras visualizações autorizadas se a nova visualização autorizada exceder esse limite.
Antes de começar
Conceda papéis do Identity and Access Management (IAM) que dão aos usuários as permissões necessárias para consultar as visualizações autorizadas ou as visualizações materializadas autorizadas que você compartilha.
Funções exigidas
Para criar ou atualizar uma visualização autorizada, você precisa de permissões no conjunto de dados que contém a visualização e no que fornece acesso a ela.
Também é necessário conceder acesso ao projeto e ao conjunto de dados que contêm a visualização.
Permissões de administrador no conjunto de dados que contém a visualização
As visualizações são tratadas como recursos de tabela no BigQuery. Portanto, para criá-las, são necessárias as mesmas permissões usadas para criar uma tabela. Você também precisa ter permissões para consultar as tabelas referenciadas pela consulta SQL da visualização.
Para criar uma visualização, você precisa ter a permissão bigquery.tables.create
do IAM. O papel predefinido roles/bigquery.dataEditor
do IAM inclui as permissões necessárias para criar uma visualização.
Além disso, se você tiver a permissão bigquery.datasets.create
, será possível criar visualizações nos conjuntos de dados que forem criados. Para criar uma visualização para dados que não pertencem a você, é necessário ter a permissão bigquery.tables.getData
para essa tabela.
Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Permissões de administrador no segundo conjunto de dados que dá acesso à visualização
Para atualizar as propriedades do conjunto de dados, você precisa das seguintes permissões do IAM:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(obrigatório apenas ao atualizar os controles de acesso do conjunto de dados no console Trusted Cloud )
O papel predefinido do IAM roles/bigquery.dataOwner
inclui as permissões necessárias para atualizar as propriedades do conjunto de dados.
Além disso, se você tiver a permissão bigquery.datasets.create
, será possível atualizar as propriedades dos conjuntos de dados que criar.
Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Permissões de usuário no projeto e no conjunto de dados da visualização
Para compartilhar uma visualização autorizada com usuários ou grupos, conceda a eles as seguintes permissões do IAM:
- O papel
roles/bigquery.user
do IAM no projeto que contém a visualização autorizada. - O papel
roles/bigquery.dataViewer
do IAM no conjunto de dados que contém a visualização autorizada.
Trabalhar com visualizações autorizadas
As seções a seguir descrevem como trabalhar com visualizações autorizadas e visualizações materializadas autorizadas.
Criar uma visualização autorizada
Para criar uma visualização autorizada, escolha uma das seguintes opções. Para conferir as etapas completas de autorização, compartilhamento e exclusão de uma visualização autorizada, consulte o tutorial Criar uma visualização autorizada.
Console
Acessar a página do BigQuery.
No editor de consultas, digite a consulta em que você quer basear a visualização autorizada.
Clique em Salvar > Salvar visualização.
Na caixa de diálogo Salvar visualização, faça o seguinte:
Em Projeto, digite o projeto em que a visualização será salva.
Em Conjunto de dados, digite o conjunto de dados em que a visualização será salva. Ele precisa ser diferente do conjunto de dados usado na consulta de origem.
Em Tabela, digite o nome da visualização.
Clique em Salvar.
Conceda as permissões necessárias aos usuários que podem usar a visualização autorizada.
No painel Explorador, selecione o conjunto de dados usado na consulta de origem.
No painel Detalhes, clique em Compartilhamento > Autorizar visualizações.
No painel Visualizações autorizadas, em Visualização autorizada, digite o nome totalmente qualificado da visualização no formato PROJECT_ID.DATASET_ID.VIEW_NAME.
Clique em Adicionar autorização.
Terraform
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Para aplicar a configuração do Terraform em um projeto Trusted Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto Trusted Cloud padrão em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu Trusted Cloud projeto para ver os resultados. No console Trusted Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.
Gerenciar usuários ou grupos para vistas autorizadas
Depois de autorizar uma visualização, você pode manter o acesso a ela concluindo as seguintes tarefas para um conjunto de dados, uma tabela ou uma visualização:
- Confira a política de acesso.
- Conceda acesso.
- Revogue o acesso.
- Negar acesso.
Para mais informações, consulte Controlar o acesso a recursos usando o IAM.
Remover a autorização de uma visualização
Para remover a autorização de uma visualização, selecione uma das seguintes opções:
Console
Acesse a página do BigQuery no console Trusted Cloud .
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Clique em > Autorizar visualizações.
CompartilhamentoClique em
para Remover autorização.Clique em Fechar.
bq
Para remover a autorização de uma visualização, use o comando bq rm
. Insira o table_id
da visualização de que você quer remover a autorização.
bq rm \ project_id:dataset:table_id
API
Chame o método tables.delete
e use as propriedades projectID
, datasetID
e tableID
para remover a visualização autorizada do seu conjunto de dados. Para mais informações, consulte
Tabelas.
Cotas e limites
- As visualizações autorizadas estão sujeitas aos limites de conjuntos de dados. Consulte mais informações em Limites do conjunto de dados.
- Quando você remove uma visualização autorizada, pode levar até 24 horas para que todas as referências a ela sejam removidas do sistema. Para evitar erros, aguarde 24 horas antes de reutilizar o nome de uma visualização removida ou crie um nome exclusivo para ela.
Tópicos avançados
As seções a seguir descrevem métodos avançados de uso de visualizações autorizadas.
Combinar segurança no nível da linha com visualizações autorizadas
Os dados exibidos em uma visualização lógica ou materializada são filtrados de acordo com as políticas de acesso no nível da linha da tabela de origem subjacente.
Para detalhes sobre como a segurança no nível da linha interage com as visualizações materializadas, consulte Usar a segurança no nível da linha com outros recursos do BigQuery.
Combinar segurança no nível da coluna com visualizações autorizadas
O impacto da segurança no nível da coluna nas visualizações não depende de a visualização ser ou não autorizada.
Para uma descrição detalhada de como as permissões são aplicadas, consulte Visualizações de consulta para segurança no nível da coluna.
Usar o compartilhamento do BigQuery com visualizações autorizadas
O BigQuery Sharing (antigo Analytics Hub) é uma plataforma de troca de dados com os seguintes recursos:
- Permite compartilhar dados e insights em escala além dos limites organizacionais.
- Usa uma estrutura robusta de segurança e privacidade.
- Permite publicar um conjunto de dados do BigQuery, chamado de conjunto de dados compartilhado, e as visualizações e conjuntos de dados autorizados associados a um grupo de assinantes.
Um conjunto de dados vinculado é um conjunto de dados somente leitura do BigQuery que serve como ponteiro ou referência a um conjunto de dados compartilhado. A assinatura de uma listagem do Sharing cria um conjunto de dados vinculado no seu projeto, e não uma cópia do conjunto de dados. Assim, os assinantes podem ler os dados, mas não podem adicionar ou atualizar objetos nele.
Não há suporte a visualizações materializadas que se referem a tabelas no conjunto de dados vinculado.
Para mais informações, consulte Introdução ao compartilhamento.
A seguir
- Para ver um tutorial sobre como criar uma visualização autorizada, consulte este link.
- Para criar uma visualização lógica, consulte Criar visualizações lógicas.
- Para criar uma visualização materializada, que oferece suporte a outros tipos de controle de acesso, consulte Criar visualizações materializadas.
- Para receber metadados de visualização, consulte Como receber informações sobre visualizações.
- Para gerenciar visualizações, consulte Gerenciar visualizações.