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:

  1. Crie uma taxonomia com pelo menos uma tag de política.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Data Catalog and BigQuery Data Policy.

    Ative as APIs

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative as APIs Data Catalog and BigQuery Data Policy.

    Ative as APIs

  8. O BigQuery é ativado de forma automática nos novos projetos, mas talvez seja necessário ativá-lo em um projeto preexistente.

    Ative a API BigQuery.

    Ative a API

  9. 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

  1. Abra a página Taxonomia de tag de política no console do Google Cloud.

    Abrir a página de taxonomias de tags de política

  2. Clique em Criar taxonomia.
  3. Na página Nova taxonomia:

    1. Em Nome da taxonomia, insira o nome da taxonomia que você quer criar.
    2. Em Descrição, insira uma descrição.
    3. Se necessário, altere o projeto listado em Projeto.
    4. Se necessário, altere o local listado em Local.
    5. Em Tags de política, insira o nome e a descrição da tag de política.
    6. Para adicionar uma tag de política filha a uma tag de política, clique em Adicionar subtag.
    7. 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.
    8. Continue adicionando tags de política e tags de política filha conforme necessário para sua taxonomia.
    9. 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.

  1. Chame taxonomies.create para criar uma taxonomia.
  2. 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.

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.

Essas permissões estão incluídas nos papéis de administrador do BigQuery e proprietário dos dados do BigQuery.

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

  1. Abra a página Taxonomia de tag de política no console do Google Cloud.

    Abrir a página de taxonomias de tags de política

  2. Clique no nome da taxonomia para abrir.
  3. Selecione uma tag de política.
  4. Clique em Gerenciar políticas de dados.
  5. 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.
  6. 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 e bigquery.routines.list no nível do projeto.
  7. 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.
  8. Clique em Enviar.

API

  1. Chame o método create. Transmita um recurso DataPolicy que atenda aos seguintes requisitos:

    • O campo dataPolicyType está definido como DATA_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.
  2. Chame o método setIamPolicy e transmita um Policy. Policy precisa identificar os principais que receberam acesso aos dados mascarados e especificar roles/bigquerydatapolicy.maskedReader para o campo role.

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).

Console

Defina a tag de política modificando um esquema usando o console do Google Cloud.

  1. Abra a página do BigQuery no console do Google Cloud.

    Acesse a página do BigQuery

  2. No BigQuery Explorer, localize e selecione a tabela que você quer atualizar. O esquema da tabela será aberto.

  3. Clique em Editar esquema.

  4. Na tela Esquema atual, selecione a coluna de destino e clique em Adicionar tag de política.

  5. Na tela Adicionar tag de política, localize e selecione a tag de política que você quer aplicar à coluna.

  6. Clique em Selecionar. A tela deve ser semelhante a esta:

    Editar esquema.

  7. Clique em Save.

bq

  1. Salve o esquema para um arquivo local.

    bq show --schema --format=prettyjson \
       project-id:dataset.table > schema.json
    

    onde:

    • 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.
  2. Modifique o schema.json para definir uma tag de política em uma coluna. Para o valor do campo names de policyTags, 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"]
       }
     },
     ...
    ]
    
  3. 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 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

  1. Abra a página Taxonomia de tag de política no console do Google Cloud.

    Abrir a página de taxonomias de tags de política

  2. Clique no nome da taxonomia para abrir.
  3. Selecione uma tag de política.
  4. Clique em Gerenciar políticas de dados.
  5. Também é possível alterar a regra de mascaramento.
  6. Opcional: adicionar ou remover principais.
  7. 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 dados e proprietário de dados do BigQuery.

Console

  1. Abra a página Taxonomia de tag de política no console do Google Cloud.

    Abrir a página de taxonomias de tags de política

  2. Clique no nome da taxonomia para abrir.
  3. Selecione uma tag de política.
  4. Clique em Gerenciar políticas de dados.
  5. Clique em ao lado da política de dados a ser excluída.
  6. Clique em Enviar.
  7. Clique em Confirmar.

API

Para excluir uma política de dados, chame o método delete.