Ocultar dados da coluna
Neste documento, mostramos como implementar o mascaramento de dados para ocultar dados sensíveis e confidenciais seletivamente. Ao implementar o mascaramento de dados, você pode oferecer diferentes níveis de visibilidade para diferentes grupos de usuários. Para informações gerais, consulte Introdução ao mascaramento de dados.
Para implementar o mascaramento de dados, adicione uma política de dados a uma coluna. Para adicionar uma política de mascaramento de dados a uma coluna, siga estas etapas:
- Crie uma taxonomia com pelo menos uma tag de política.
- Opcional: conceda o papel Leitor de controle refinado do Data Catalog a um ou mais principais em uma ou mais tags de política criadas.
- Crie até três políticas de dados para a tag de política mapear regras de mascaramento e principais (que representam usuários ou grupos) para essa tag.
- Defina a tag de política em uma coluna. Isso mapeia as políticas de dados associadas à tag de política para a coluna selecionada.
- Atribua usuários que precisam ter acesso a dados mascarados ao papel Leitor mascarado do BigQuery. Como prática recomendada, atribua o papel de leitor mascarado do BigQuery no nível da política de dados. Atribuir o papel no nível do projeto ou em níveis superiores concede aos usuários permissões para todas as políticas de dados no projeto, o que pode levar a problemas causados por permissões em excesso.
É possível usar o console do Google Cloud ou a API BigQuery Data Policy para trabalhar com políticas de dados.
Quando você conclui essas etapas, os usuários que executam consultas na coluna recebem dados não mascarados, dados mascarados ou um erro de acesso negado, dependendo dos grupos a que eles pertencem e dos papéis que receberam. Para mais informações, consulte Como os papéis de leitor mascarado e leitor de controle refinado interagem.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
- O BigQuery é ativado de forma automática nos novos projetos, mas talvez seja
necessário ativá-lo em um projeto preexistente.
Enable the BigQuery API.
- Se você estiver criando uma política de dados que se refira a uma rotina de mascaramento personalizada, crie a UDF de mascaramento associada para que ela esteja disponível nas etapas a seguir.
Criar taxonomias
A conta de usuário ou de serviço que cria uma taxonomia precisa receber o papel de administrador de tags de política do Data Catalog.
Console
- Abra a página Taxonomia de tag de política no console do Google Cloud.
- Clique em Criar taxonomia.
Na página Nova taxonomia:
- Em Nome da taxonomia, insira o nome da taxonomia que você quer criar.
- Em Descrição, insira uma descrição.
- Se necessário, altere o projeto listado em Projeto.
- Se necessário, altere o local listado em Local.
- Em Tags de política, insira o nome e a descrição da tag de política.
- Para adicionar uma tag de política filha a uma tag de política, clique em Adicionar subtag.
- Para adicionar uma nova tag de política no mesmo nível de outra tag de política, clique em + Adicionar tag de política.
- Continue adicionando tags de política e tags de política filha conforme necessário para sua taxonomia.
- Quando terminar de criar tags de política para sua hierarquia, clique em Criar.
API
Para usar as taxonomias atuais, chame
taxonomies.import
no lugar das duas primeiras etapas do procedimento a seguir.
- Chame
taxonomies.create
para criar uma taxonomia. - Chame
taxonomies.policytag.create
para criar uma tag de política.
Trabalhar com tags de política
Para conferir mais informações sobre como trabalhar com tags de política, como vê-las ou atualizá-las, consulte Trabalhar com tags de política. Para práticas recomendadas, consulte Práticas recomendadas para uso de tags de política no BigQuery.
Criar políticas de dados
A conta de usuário ou de serviço que cria uma política de dados precisa ter as permissões
bigquery.dataPolicies.create
, bigquery.dataPolicies.setIamPolicy
e
datacatalog.taxonomies.get
.
As permissões bigquery.dataPolicies.create
e bigquery.dataPolicies.setIamPolicy
estão incluídas nos papéis de administrador da política de dados, administrador do BigQuery e proprietário de dados do BigQuery.
A permissão datacatalog.taxonomies.get
está incluída nos papéis de Administrador do Data Catalog e Leitor do Data Catalog.
Se você estiver criando uma política de dados que se refira a uma rotina de mascaramento personalizada, também será preciso ter permissões de rotina.
No caso de mascaramento personalizado, conceda aos usuários os papéis de administrador do BigQuery ou proprietário de dados do BigQuery para garantir que eles tenham as permissões necessárias para as rotinas e políticas de dados.
Você pode criar até nove políticas de dados para uma tag de política. Uma dessas políticas é reservada para configurações de controle de acesso no nível da coluna.
Console
- Abra a página Taxonomia de tag de política no console do Google Cloud.
- Clique no nome da taxonomia para abrir.
- Selecione uma tag de política.
- Clique em Gerenciar políticas de dados.
- Em Nome da política de dados, digite um nome para a política de dados. O nome da política de dados precisa ser exclusivo no projeto em que a política de dados reside.
- Em Regra de mascaramento, escolha uma regra de mascaramento predefinida ou uma rotina
personalizada. Se você estiver selecionando uma rotina de mascaramento personalizada, verifique
se tem as permissões
bigquery.routines.get
ebigquery.routines.list
no nível do projeto. - Em Principal, digite o nome de um ou mais usuários ou grupos a que você quer conceder acesso mascarado à coluna. Todos os usuários e grupos inseridos aqui recebem o papel Leitor mascarado do BigQuery.
- Clique em Enviar.
API
Chame o método
create
. Transmita um recursoDataPolicy
que atenda aos seguintes requisitos:- O campo
dataPolicyType
está definido comoDATA_MASKING_POLICY
. - O campo
dataMaskingPolicy
identifica a regra ou rotina de mascaramento de dados a ser usada. - O campo
dataPolicyId
fornece um nome para a política de dados que é exclusiva no projeto em que a política de dados reside.
- O campo
Chame o método
setIamPolicy
e transmita umPolicy
.Policy
precisa identificar os principais que receberam acesso aos dados mascarados e especificarroles/bigquerydatapolicy.maskedReader
para o camporole
.
Definir tags de política nas colunas
Defina uma política de dados em uma coluna anexando a tag de política associada à política de dados à coluna.
A conta de usuário ou serviço que define uma tag de política precisa das
permissões datacatalog.taxonomies.get
e bigquery.tables.setCategory
.
datacatalog.taxonomies.get
está incluído nos
papéis de administrador de tags de política do Data Catalog e de visualizador do projeto.
bigquery.tables.setCategory
está incluído nos papéis Administrador do BigQuery (roles/bigquery.admin
) e de Proprietário de dados do BigQuery (roles/bigquery.dataOwner
).
Para visualizar taxonomias e tags de política em todos os projetos de uma organização no
Console do Google Cloud, os usuários precisam da permissão resourcemanager.organizations.get
, incluída no papel Leitor da organização.
Console
Defina a tag de política modificando um esquema usando o console do Google Cloud.
Abra a página do BigQuery no console do Google Cloud.
No BigQuery Explorer, localize e selecione a tabela que você quer atualizar. O esquema da tabela será aberto.
Clique em Editar esquema.
Na tela Esquema atual, selecione a coluna de destino e clique em Adicionar tag de política.
Na tela Adicionar tag de política, localize e selecione a tag de política que você quer aplicar à coluna.
Clique em Selecionar. A tela deve ser semelhante a esta:
Clique em Salvar.
bq
Salve o esquema para um arquivo local.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
em que:
- project-id é o ID do projeto;
- dataset é o nome do conjunto de dados que contém a tabela que você está atualizando;
- table é o nome da tabela que você está atualizando.
Modifique o schema.json para definir uma tag de política em uma coluna. Para o valor do campo
names
depolicyTags
, use o nome do recurso da tag de política.[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"] } }, ... ]
Atualize o esquema.
bq update \ project-id:dataset.table schema.json
API
Para tabelas existentes, chame tables.patch
. Para novas tabelas, chame
tables.insert
. Use a
propriedade schema
do objeto Table
que você transmite
para definir uma tag de política na definição do esquema. Consulte o esquema de exemplo
de linha de comando para conferir como definir uma tag de política.
Ao trabalhar com uma tabela atual, o método tables.patch
é preferível,
porque o método tables.update
substitui todo o recurso da tabela.
Aplicar controle de acesso
Ao criar uma política de dados para uma tag de política, o controle de acesso é aplicado automaticamente. Todas as colunas com essa tag de política aplicada retornam dados mascarados em resposta a consultas de usuários que têm o papel Leitor mascarado.
Para interromper a aplicação do controle de acesso, primeiro é necessário excluir todas as políticas de dados associadas às tags de política na taxonomia. Para mais informações, consulte Aplicar controle de acesso.
Verificar as permissões do IAM em uma política de dados
Para conferir quais permissões você tem em uma política de dados, chame o método
testIamPermissions
.
Atualizar políticas de dados
A conta de usuário ou de serviço que atualiza uma política de dados precisa ter a permissão bigquery.dataPolicies.update
.
Se você estiver atualizando a tag de política a que a política de dados está associada, também precisará da permissão datacatalog.taxonomies.get
.
Se você estiver atualizando os principais associados à política de dados, precisará da permissão bigquery.dataPolicies.setIamPolicy
.
As permissões bigquery.dataPolicies.update
e bigquery.dataPolicies.setIamPolicy
estão incluídas nos papéis de administrador da política de dados, administrador do BigQuery e proprietário de dados do BigQuery.
A permissão datacatalog.taxonomies.get
está incluída nos papéis de Administrador do Data Catalog e Leitor do Data Catalog.
Console
- Abra a página Taxonomia de tag de política no console do Google Cloud.
- Clique no nome da taxonomia para abrir.
- Selecione uma tag de política.
- Clique em Gerenciar políticas de dados.
- Também é possível alterar a regra de mascaramento.
- Opcional: adicionar ou remover principais.
- Clique em Enviar.
API
Para alterar a regra de mascaramento de dados, chame o método
patch
e transmita um recurso
DataPolicy
com um campo dataMaskingPolicy
atualizado.
Para alterar os principais associados a uma política de dados, chame o método
setIamPolicy
e transmita um
Policy
que atualize
os principais que recebem acesso aos dados mascarados.
Excluir políticas de dados
A conta de usuário ou de serviço que cria uma política de dados precisa ter a permissão bigquery.dataPolicies.delete
. Essa permissão está incluída nos
papéis de administrador de políticas de dados, administrador do BigQuery e proprietário de dados do BigQuery.
Console
- Abra a página Taxonomia de tag de política no console do Google Cloud.
- Clique no nome da taxonomia para abrir.
- Selecione uma tag de política.
- Clique em Gerenciar políticas de dados.
- Clique em ao lado da política de dados a ser excluída.
- Clique em Enviar.
- Clique em Confirmar.
API
Para excluir uma política de dados, chame o
método
delete
.