Importar dados para um data warehouse seguro do BigQuery

Last reviewed 2025-06-15 UTC

Muitas organizações implantam data warehouses que armazenam dados sensíveis para que possam analisar os dados para diversos fins comerciais. Este documento é destinado a engenheiros e administradores de segurança que implantam e protegem armazenamentos de dados usando o BigQuery. Ele faz parte de um blueprint composto pelo seguinte:

Neste documento, você verá os seguintes tópicos:

  • A arquitetura e os Google Cloud serviços que podem ser usados para ajudar a proteger um data warehouse em um ambiente de produção.
  • Práticas recomendadas para importar dados para o BigQuery a partir de uma rede externa, como um ambiente local.
  • Práticas recomendadas para governança de dados ao criar, implantar e operar um data warehouse no Google Cloud, incluindo:

    • Desidentificação de dados

    • tratamento diferencial de dados confidenciais

    • criptografia no nível da coluna

    • controles de acesso no nível da coluna

Neste documento, pressupomos que você já tenha configurado um conjunto básico de controles de segurança, conforme descrito no blueprint de bases empresariais. Ele ajuda você a sobrepor controles adicionais aos seus controles de segurança atuais para ajudar a proteger dados confidenciais em um data warehouse.

Casos de uso do data warehouse

O blueprint é compatível com os seguintes casos de uso:

Visão geral

Data warehouses como o BigQuery permitem que as empresas analisem os dados comerciais para conseguir insights. Os analistas acessam os dados de negócios que estão armazenados nos data warehouses para criar insights. Se o data warehouse incluir dados confidenciais, você precisará tomar medidas para preservar a segurança, a confidencialidade, a integridade e a disponibilidade dos dados da empresa enquanto eles estão armazenados, em trânsito ou sendo analisados. Neste blueprint, você vai:

  • Ao importar dados de fontes externas, criptografe os dados que estão fora do Google Cloud (por exemplo, em um ambiente local) e importe-os para Google Cloud.
  • Configurar controles que ajudem a proteger o acesso a dados confidenciais.
  • Configurar controles que ajudem a proteger o pipeline de dados.
  • Configurar uma separação adequada de tarefas para diferentes perfis.
  • Ao importar dados de outras fontes localizadas em Google Cloud (também conhecidas como fontes de dados internas), configure modelos para encontrar e desidentificar dados confidenciais.
  • Configurar controles de segurança e registros apropriados para proteger dados confidenciais.
  • Use a classificação de dados, tags de política, mascaramento dinâmico de dados e criptografia no nível da coluna para restringir o acesso a colunas específicas no data warehouse.

Arquitetura

Para criar um data warehouse confidenciais, é necessário importá-los com segurança e armazená-los em um perímetro do VPC Service Controls.

Arquitetura ao importar dados de Google Cloud

A imagem a seguir mostra como os dados ingeridos são categorizados, desidentificados e armazenados quando você importa dados de origem de Google Cloud usando o repositório terraform-google-secured-data-warehouse. Você também vai aprender a identificar novamente dados confidenciais sob demanda para análise.

A arquitetura de data warehouse de dados sensíveis para fontes internas.

Arquitetura ao importar dados de fontes externas

A imagem a seguir mostra como os dados são ingeridos e armazenados quando você importa dados de um ambiente local ou de outra nuvem para um data warehouse do BigQuery usando o repositório terraform-google-secured-data-warehouse-onprem-ingest.

A arquitetura de data warehouse de dados sensíveis para redes externas.

Serviços e recursos doGoogle Cloud

As arquiteturas usam uma combinação dos seguintes serviços e recursos Google Cloud :

Serviço ou recurso Descrição

BigQuery

Aplicável a fontes de dados internas e externas. No entanto, existem diferentes opções de armazenamento:

  • Ao importar dados de Google Cloud, o BigQuery armazena os dados confidenciais no perímetro de dados confidenciais.
  • Ao importar dados de uma fonte externa, o BigQuery armazena os dados criptografados e a chave de criptografia encapsulada em tabelas separadas.

O BigQuery usa vários controles de segurança para ajudar a proteger o conteúdo, incluindo controles de acesso, segurança no nível da coluna para dados confidenciais e criptografia de dados.

Cloud Key Management Service (Cloud KMS) com Cloud HSM

Aplicável a fontes internas e externas. No entanto, existe outro caso de uso para fontes de dados externas.

O Cloud HSM é um serviço de módulo de segurança de hardware (HSM) baseado na nuvem que hospeda a chave de criptografia de chaves (KEK). Ao importar dados de uma fonte externa, você usa o Cloud HSM para gerar a chave de criptografia que você usa para criptografar os dados na sua rede antes de enviá-los para Google Cloud.

Cloud Logging

Aplicável a fontes internas e externas.

O Cloud Logging coleta todos os registros dos serviços do Google Cloud para armazenamento e recuperação pelas ferramentas de análise e investigação.

Cloud Monitoring

Aplicável a fontes internas e externas.

O Cloud Monitoring coleta e armazena informações de desempenho e métricas sobre Google Cloud serviços.

Funções do Cloud Run

Aplicável apenas a fontes de dados externas.

O Cloud Run functions é acionado pelo Cloud Storage e grava os dados que o Cloud Storage faz upload no bucket de ingestão no BigQuery.

Cloud Storage e Pub/Sub

Aplicável a fontes internas e externas.

O Cloud Storage e o Pub/Sub recebem dados da seguinte maneira:

  • Cloud Storage: recebe e armazena dados em lote. Por padrão, o Cloud Storage usa TLS para criptografar dados em trânsito e AES-256 para criptografar dados no armazenamento. A chave de criptografia é uma chave de criptografia gerenciada pelo cliente (CMEK). Para mais informações sobre criptografia, consulte Opções de criptografia de dados.

    É possível ajudar a proteger o acesso a buckets do Cloud Storage usando controles de segurança, como Identity and Access Management, listas de controle de acesso (ACLs) e documentos de política. Para mais informações sobre os controles de acesso compatíveis, consulte Visão geral do controle de acesso.

Data Profiler para BigQuery

Aplicável a fontes internas e externas.

O Data Profiler para BigQuery verifica automaticamente dados sensíveis em todas as tabelas e colunas do BigQuery em toda a organização, incluindo todas as pastas e projetos.

Pipelines do Dataflow

Aplicável a fontes internas e externas. No entanto, existem pipelines diferentes.

Os pipelines do Dataflow importam dados da seguinte maneira:

  • Ao importar dados de Google Cloud, dois pipelines do Dataflow desidentificam e reidentificam dados confidenciais. O primeiro pipeline identifica dados confidenciais usando pseudonimização. O segundo pipeline identifica novamente dados confidenciais quando usuários autorizados exigem acesso.
  • Ao importar dados de uma fonte externa, um pipeline do Dataflow grava dados de streaming no BigQuery.

Catálogo universal do Dataplex

Aplicável a fontes internas e externas.

O Dataplex Universal Catalog categoriza automaticamente dados confidenciais com metadados, também conhecidos como tags de política, durante o processamento. O Dataplex Universal Catalog também usa metadados para gerenciar o acesso a dados confidenciais. Para controlar o acesso aos dados no data warehouse, aplique tags de política a colunas que incluam dados confidenciais.

Interconexão dedicada

Aplicável apenas a fontes de dados externas.

Com a Interconexão dedicada, é possível mover dados entre sua rede e o Google Cloud. É possível usar outra opção de conectividade, conforme descrito em Como escolher um produto de conectividade de rede.

IAM e Resource Manager

Aplicável a fontes internas e externas.

O Identity and Access Management (IAM) e o Resource Manager restringem o acesso e segmentam recursos. A hierarquia de recursos e controles de acesso seguem o princípio de privilégio mínimo.

Security Command Center

Aplicável a fontes internas e externas.

O Security Command Center monitora e analisa as descobertas de segurança em todo o ambiente do Google Cloud em um só local.

Proteção de Dados Sensíveis

Aplicável a fontes internas e externas. No entanto, diferentes verificações ocorrem.

A Proteção de Dados Sensíveis verifica os dados da seguinte maneira:

  • Ao importar dados de Google Cloud, a Proteção de dados sensíveis desidentifica dados confidenciais durante o processamento. A proteção de dados sensíveis desidentifica dados estruturados e não estruturados com base nos infoTypes ou registros detectados.
  • Ao importar dados de uma fonte externa, a proteção de dados sensíveis verifica os dados armazenados no BigQuery para encontrar dados sensíveis que não estejam protegidos. Para mais informações, consulte Como usar a proteção de dados sensíveis para verificar dados do BigQuery.

VPC Service Controls

Aplicável a fontes internas e externas. No entanto, existem diferentes perímetros.

O VPC Service Controls cria perímetros de segurança que isolam serviços e recursos, configurando autorização, controles de acesso e troca segura de dados. Os perímetros são os seguintes:

  • Um perímetro de ingestão de dados aceita dados de entrada (em lote ou stream) e os desidentifica. Uma zona de destino separada ajuda a proteger o restante das cargas de trabalho contra dados de entrada.
  • Ao importar dados de Google Cloud, um perímetro de dados confidenciais pode reidentificar os dados confidenciais e armazená-los em uma área restrita.
  • Ao importar dados externos, um perímetro de dados isola os dados de criptografia de outras cargas de trabalho.
  • Um perímetro de governança armazena as chaves de criptografia e define o que é considerado como dados confidenciais.

Eles são projetados para proteger o conteúdo recebido, isolar dados confidenciais configurando controles e monitoramento de acesso adicionais e separar sua governança dos dados reais no armazenamento. Sua governança inclui gerenciamento de chaves, gerenciamento de catálogo de dados e geração de registros.

Estrutura da organização

Você agrupa os recursos da sua organização para gerenciá-los e separar os ambientes de teste do ambiente de produção. O Resource Manager permite agrupar logicamente recursos por projeto, pasta e organização.

Os diagramas a seguir mostram uma hierarquia de recursos com pastas que representam diferentes ambientes, como bootstrap, comum, produção, não produção (ou preparatório) e desenvolvimento. Você implanta a maioria dos projetos na arquitetura na pasta de produção e o projeto de governança de dados na pasta comum usada para governança.

Estrutura da organização ao importar dados de Google Cloud

O diagrama a seguir mostra a estrutura da organização ao importar dados de Google Cloud usando o repositório terraform-google-secured-data-warehouse.

Hierarquia de recursos para um data warehouse sensível para fontes internas.

Estrutura da organização ao importar dados de fontes externas

O diagrama a seguir mostra a estrutura da organização ao importar dados de uma fonte externa usando o repositório terraform-google-secured-data-warehouse-onprem-ingest.

Hierarquia de recursos para um data warehouse sensível para fontes externas.

Pastas

Use pastas para isolar o ambiente de produção e os serviços de governança dos ambientes de não produção e teste. A tabela a seguir descreve as pastas do blueprint de bases corporativas que são usadas por essa arquitetura.

Pasta Descrição

Inicializar

Contém os recursos necessários para implantar o blueprint de bases empresariais.

Nome

Contêm serviços centralizados para a organização, como o projeto de governança de dados.

Produção

Contém projetos que têm recursos de nuvem testados e prontos para uso. Nessa arquitetura, a pasta "Production" contém o projeto de ingestão de dados e projetos relacionados a dados.

Não produção

Contém projetos com recursos de nuvem que estão sendo testados e preparados para lançamento. Nessa arquitetura, a pasta "Não produção" contém o projeto de ingestão de dados e projetos relacionados a dados.

Desenvolvimento

Contém projetos que têm recursos de nuvem que estão sendo desenvolvidos. Nessa arquitetura, a pasta "Desenvolvimento" contém o projeto de ingestão de dados e projetos relacionados a dados.

Altere os nomes dessas pastas para alinhá-las à estrutura de pastas da sua organização, mas recomendamos manter uma estrutura semelhante. Para mais informações, consulte o blueprint de bases empresariais.

Projetos

Isolar partes do ambiente usando projetos. A tabela a seguir descreve os projetos necessários na organização. Você cria esses projetos ao executar o código do Terraform. É possível alterar os nomes desses projetos, mas recomendamos que você mantenha uma estrutura de projeto semelhante.

Projeto Descrição

Ingestão de dados

Projeto comum para fontes internas e externas.

Contém serviços que são necessários para receber dados e desidentificar dados confidenciais.

Governança de dados

Projeto comum para fontes internas e externas.

Contém serviços que oferecem recursos de gerenciamento de chaves, geração de registros e catalogação de dados.

Dados não confidenciais

Projeto apenas para fontes internas.

Contém serviços que são necessários para armazenar dados que foram desidentificados.

Dados confidenciais

Projeto apenas para fontes internas.

Contém serviços que são necessários para armazenar e reidentificar dados confidenciais.

Dados

Projeto apenas para fontes externas.

Contém serviços necessários para armazenar dados.

Além desses projetos, o ambiente também precisa incluir um projeto que hospede um job Flex Template do Dataflow. O job de modelo flexível é necessário para o pipeline de dados de streaming.

Como mapear papéis e grupos para projetos

Você precisa conceder a diferentes grupos de usuários da sua organização acesso aos projetos que compõem o data warehouse confidencial. As seções a seguir descrevem as recomendações de arquitetura para grupos de usuários e atribuições de papéis nos projetos que você criar. É possível personalizar os grupos para que correspondam à estrutura da sua organização. No entanto, recomendamos que você mantenha uma segregação semelhante das tarefas e da atribuição de funções.

Grupo de analistas de dados

Analistas de dados analisam os dados no armazenamento. No repositório terraform-google-secured-data-warehouse-onprem-ingest, esse grupo pode visualizar dados depois que eles são carregados no data warehouse e realizar as mesmas operações que o grupo de visualizador de dados criptografados.

A tabela a seguir descreve as funções do grupo em diferentes projetos para o repositório terraform-google-secured-data-warehouse (somente fontes de dados internas).

Mapeamento do projeto Papéis

Ingestão de dados

Papel adicional para analistas de dados que exigem acesso a dados confidenciais:

Dados confidenciais

Dados não confidenciais

A tabela a seguir descreve os papéis do grupo em diferentes projetos para o repositório terraform-google-secured-data-warehouse-onprem-ingest (somente fontes de dados externas).

Escopo da atribuição Papéis

Projeto de ingestão de dados

Projeto de dados

Nível da política de dados

Leitor mascarado (roles/bigquerydatapolicy.maskedReader)

Grupo de leitores de dados criptografados (somente fontes externas)

O grupo de visualizador de dados criptografados no repositório terraform-google-secured-data-warehouse-onprem-ingest pode acessar dados criptografados das tabelas de relatórios do BigQuery pelo Looker Studio e outras ferramentas de relatórios, como o SAP Business Objects. O grupo de visualizadores de dados criptografados não pode acessar dados de texto não criptografado de colunas criptografadas.

Esse grupo requer o papel de Usuário do BigQuery (roles/bigquery.jobUser) no projeto de dados. Esse grupo também exige o papel de Leitor mascarado (roles/bigquerydatapolicy.maskedReader) no nível da política de dados.

Grupo de leitores de texto simples (somente fontes externas)

O grupo de leitor de texto simples no repositório terraform-google-secured-data-warehouse-onprem-ingest tem a permissão necessária para chamar a função de descriptografia definida pelo usuário (UDF, na sigla em inglês) para visualizar dados de texto simples e a permissão extra para ler dados não mascarados.

Esse grupo exige os seguintes papéis no projeto de dados:

Além disso, esse grupo exige o papel Leitor refinado (roles/datacatalog.categoryFineGrainedReader) no nível do Dataplex Universal Catalog.

Grupo de engenheiros de dados

Engenheiros de dados configuram e mantêm o pipeline de dados e o armazenamento.

A tabela a seguir descreve as funções do grupo em diferentes projetos para o repositório terraform-google-secured-data-warehouse.

Pontuação da atividade Papéis

Projeto de ingestão de dados

Projeto de dados confidenciais

Projeto de dados não confidenciais

A tabela a seguir descreve as funções do grupo em diferentes projetos para o repositório terraform-google-secured-data-warehouse-onprem-ingest.

Escopo da atribuição Papéis

Projeto de ingestão de dados

Projeto de dados

Grupo de administradores de rede

Os administradores de rede configuram a rede. Normalmente, eles fazem parte da equipe de rede.

Os administradores de rede exigem os seguintes papéis no nível da organização:

Grupo de administradores de segurança

Os administradores de segurança administram os controles de segurança, como o acesso, as chaves, as regras de firewall, o VPC Service Controls e o Security Command Center.

Os administradores de segurança exigem os seguintes papéis no nível da organização:

Grupo de analistas de segurança

Os analistas de segurança monitoram e respondem a incidentes de segurança e descobertas da proteção de dados sensíveis.

Os analistas de segurança exigem os seguintes papéis no nível da organização:

Exemplos de fluxos de acesso ao grupo para fontes externas

As seções a seguir descrevem os fluxos de acesso para dois grupos ao importar dados de fontes externas usando o repositório terraform-google-secured-data-warehouse-onprem-ingest.

Fluxo de acesso para o grupo do visualizador de dados criptografados

O diagrama a seguir mostra o que ocorre quando um usuário do grupo de visualizadores de dados criptografados tenta acessar dados criptografados no BigQuery.

O fluxo para o grupo do visualizador de dados criptografados.

As etapas para acessar dados no BigQuery são as seguintes:

  1. O visualizador de dados criptografados executa a seguinte consulta no BigQuery para acessar dados confidenciais:

    SELECT ssn, pan FROM cc_card_table
    
  2. O BigQuery verifica o acesso da seguinte maneira:

    • O usuário é autenticado usando credenciais Google Cloud válidas e não expiradas.
    • A identidade do usuário e o endereço IP de origem da solicitação fazem parte da lista de permissões na regra de nível de acesso ou entrada no perímetro do VPC Service Controls.
    • O IAM verifica se o usuário tem os papéis apropriados e está autorizado a acessar as colunas criptografadas selecionadas na tabela do BigQuery.

O BigQuery retorna os dados confidenciais em formato criptografado.

Fluxo de acesso para o grupo de leitor de texto simples

O diagrama a seguir mostra o que ocorre quando um usuário do grupo de leitores de texto simples tenta acessar dados criptografados no BigQuery.

O fluxo do grupo de leitor de texto simples.

As etapas para acessar dados no BigQuery são as seguintes:

  1. O leitor de texto simples executa a seguinte consulta no BigQuery para acessar dados confidenciais no formato descriptografado:

    SELECT decrypt_ssn(ssn) FROM cc_card_table
    
  2. O BigQuery chama a função definida pelo usuário (UDF) na consulta para acessar colunas protegidas.

  3. O acesso é verificado da seguinte maneira:

    • O IAM verifica se o usuário tem papéis apropriados e está autorizado a acessar a UDF de descriptografia no BigQuery.
    • A UDF recupera a chave de criptografia de dados (DEK) incorporada que foi usada para proteger colunas de dados sensíveis.
  4. A UDF descriptografada chama a chave de criptografia de chaves (KEK) no Cloud HSM para desencapsular a DEK. A UDF descriptografada usa a função de descriptografia AEAD do BigQuery para descriptografar as colunas de dados sensíveis.

  5. O usuário recebe acesso aos dados em texto simples nas colunas de dados confidenciais.

Controles de segurança comuns

As seções a seguir descrevem os controles que se aplicam a fontes internas e externas.

Controles de ingestão de dados

Para criar o data warehouse, é necessário transferir dados de outra fonteGoogle Cloud , como um data lake, do ambiente local ou de outra nuvem. Use uma das opções a seguir para transferir dados para o armazenamento de dados no BigQuery:

  • Um job em lote que usa o Cloud Storage.
  • Um job de streaming que use o Pub/Sub.

Para ajudar a proteger os dados durante a ingestão, é possível usar a criptografia do lado do cliente, regras de firewall e políticas de nível de acesso. Em alguns casos, o processo de ingestão é chamado de processo de extração, transformação e carregamento (ETL).

Regras de rede e firewall

As regras de firewall da nuvem privada virtual (VPC) controlam o fluxo de dados nos perímetros. Você cria regras de firewall que negam todas as saídas, exceto para conexões de porta TCP 443 específicas dos nomes de domínio especiais restricted.googleapis.com. O domínio restricted.googleapis.com tem os seguintes benefícios:

  • Ele reduz a superfície de ataque à rede usando o Acesso privado do Google quando as cargas de trabalho se comunicam com os serviços e as APIs.
  • Isso garante que você use apenas serviços compatíveis com o VPC Service Controls.

Para mais informações, consulte Como configurar o acesso particular do Google.

Ao usar o repositório terraform-google-secured-data-warehouse, é necessário configurar sub-redes separadas para cada job do Dataflow. Sub-redes separadas garantem que os dados que estão sendo desidentificados sejam devidamente separados dos dados que estão sendo reidentificados.

O pipeline de dados exige que você abra portas TCP no firewall, conforme definido no arquivo dataflow_firewall.tf nos respectivos repositórios. Para mais informações, consulte Como configurar o acesso à Internet e as regras de firewall.

Para impedir que os recursos usem endereços IP externo, a política da organização Definir IPs externos permitidos para instâncias de VM (compute.vmExternalIpAccess) está definida para negar tudo.

Controles de perímetro

Conforme mostrado no diagrama de arquitetura, você coloca os recursos do data warehouse em perímetros separados. Para permitir que serviços em diferentes perímetros compartilhem dados, crie pontes do perímetro.

Pontes do perímetro permitem que os serviços protegidos façam solicitações de recursos fora do perímetro. Essas pontes fazem as seguintes conexões para o repositório terraform-google-secured-data-warehouse:

  • Eles conectam o projeto de ingestão de dados ao projeto de governança para que a desidentificação possa ocorrer durante o processamento.
  • Eles conectam o projeto de dados não confidenciais e o projeto de dados confidenciais para que esses dados possam ser identificados novamente quando um analista de dados os solicitar.
  • Eles conectam o projeto confidencial ao projeto de governança de dados para que a reidentificação possa ocorrer quando um analista de dados solicitar.

Essas pontes fazem as seguintes conexões para o repositório terraform-google-secured-data-warehouse-onprem-ingest:

  • Elas conectam o projeto de ingestão de dados ao projeto de dados para que os dados possam ser ingeridos no BigQuery.
  • Elas conectam o projeto de dados ao projeto de governança de dados para que a Proteção de dados sensíveis possa verificar o BigQuery em busca de dados confidenciais desprotegidos.
  • Elas conectam o projeto de ingestão de dados ao projeto de governança de dados para acessar as chaves de geração de registros, monitoramento e criptografia.

Além das pontes do perímetro, use regras de saída para permitir que os recursos protegidos por perímetros de serviço acessem recursos que estão fora do perímetro. Nesta solução, você configura regras de saída para conseguir os jobs externos de modelo flexível do Dataflow localizados no Cloud Storage em um projeto externo. Para mais informações, consulte Acessar um recurso Google Cloud fora do perímetro.

Política de acesso

Para garantir que apenas identidades específicas (usuários ou serviços) possam acessar recursos e dados, ative os grupos e os papéis do IAM.

Para garantir que apenas fontes específicas possam acessar seus projetos, ative uma política de acesso para sua organização do Google. Recomendamos que você crie uma política de acesso que especifique o intervalo de endereços IP permitido para solicitações e permita apenas solicitações de usuários ou contas de serviço específicos. Para mais informações, consulte Atributos de nível de acesso.

Contas de serviço e controles de acesso

As contas de serviço são identidades que Google Cloud podem ser usadas para executar solicitações de API em seu nome. As contas de serviço garantem que as identidades dos usuários não tenham acesso direto aos serviços. Para permitir a separação de tarefas, crie contas de serviço com papéis diferentes para fins específicos. Essas contas de serviço são definidas nos módulos data-ingestion e confidential-data em cada arquitetura.

Para o repositório terraform-google-secured-data-warehouse, as contas de serviço são as seguintes:

  • Uma conta de serviço do controlador do Dataflow para o pipeline do Dataflow que desidentifica dados confidenciais.
  • Uma conta de serviço do controlador do Dataflow para o pipeline do Dataflow que reidentifica dados confidenciais.
  • Uma conta de serviço do Cloud Storage para ingerir dados de um arquivo em lote.
  • Uma conta de serviço do Pub/Sub para ingerir dados de um serviço de streaming.
  • Uma conta de serviço do Cloud Scheduler para executar o job do Dataflow em lote que cria o pipeline do Dataflow.

A tabela a seguir lista os papéis que são atribuídos a cada conta de serviço:

Conta de serviço Nome Projeto Papéis

Controlador do Dataflow

Esta conta é usada para desidentificação.

sa-dataflow-controller

Ingestão de dados

Controlador do Dataflow

Esta conta é usada para reidentificação.

sa-dataflow-controller-reid

Dados confidenciais

Cloud Storage

sa-storage-writer

Ingestão de dados

Pub/Sub

sa-pubsub-writer

Ingestão de dados

Cloud Scheduler

sa-scheduler-controller

Ingestão de dados

Para o repositório terraform-google-secured-data-warehouse-onprem-ingest, as contas de serviço são as seguintes:

  • A conta de serviço do Cloud Storage executa o processo automatizado de upload de dados em lote para o bucket de armazenamento de ingestão.
  • A conta de serviço do Pub/Sub permite o streaming de dados para o serviço do Pub/Sub.
  • A conta de serviço do controlador do Dataflow é usada pelo pipeline do Dataflow para transformar e gravar dados do Pub/Sub no BigQuery.
  • A conta de serviço do Cloud Run functions grava dados em lote subsequentes enviados do Cloud Storage para o BigQuery.
  • A conta de serviço de upload do Storage permite que o pipeline de ETL crie objetos.
  • A conta de serviço de gravação do Pub/Sub permite que o pipeline de ETL grave dados no Pub/Sub.

A tabela a seguir lista os papéis que são atribuídos a cada conta de serviço:

Nome Papéis Escopo da atribuição

Conta de serviço do controlador do Dataflow

Projeto de ingestão de dados

Projeto de dados

Governança de dados

Conta de serviço do Cloud Run functions

Projeto de ingestão de dados

Projeto de dados

Conta de serviço de upload do Storage

Projeto de ingestão de dados

Conta de serviço de gravação do Pub/Sub

Projeto de ingestão de dados

Políticas organizacionais

Essa arquitetura inclui as restrições da política da organização que o blueprint de bases empresariais usa e adiciona mais restrições. Para mais informações sobre as restrições usadas pelo blueprint de bases empresariais, consulte Restrições da política da organização.

A tabela a seguir descreve as outras restrições da política da organização definidas no módulo org_policies para os respectivos repositórios:

Política Nome da restrição Valor recomendado

Restringir implantações de recursos a locais físicos específicos. Para outros valores, consulte Grupos de valores.

gcp.resourceLocations

Uma das seguintes opções:

in:us-locations

in:eu-locations

in:asia-locations

Desativar conta de serviço de serviço

iam.disableServiceAccountCreation

true

Ative o Login do SO nas VMs criadas no projeto.

compute.requireOsLogin

true

Restrinja as novas regras de encaminhamento para que sejam apenas internas com base no endereço IP.

compute.restrictProtocolForwardingCreationForTypes

INTERNAL

Defina o conjunto de VPC compartilhada compartilhadas que os recursos do Compute Engine podem usar.

compute.restrictSharedVpcSubnetworks

projects//regions//s ubnetworks/

Substitua pelo ID do recurso da sub-rede particular que você quer que a arquitetura use.

Desative a geração de registros de saída da porta serial para o Cloud Logging.

compute.disableSerialPortLogging

true

Exigir proteção de CMEK (somente terraform-google-secured-data-warehouse-onprem-ingest)

gcp.restrictNonCmekServices

bigquery.googleapis.com

Desativar a criação de chaves da conta de serviço (terraform-google-secured-data-warehouse-onprem-ingest only)

disableServiceAccountKeyCreation

verdadeiro

Ativar o Login do SO nas VMs criadas no projeto (terraform-google-secured-data-warehouse-onprem-ingest only)

compute.requireOsLogin

verdadeiro

Desative concessões de papel automáticas para a conta de serviço padrão (terraform-google-secured-data-warehouse-onprem-ingest only).

automaticIamGrantsForDefaultServiceAccounts

verdadeiro

Configurações de entrada permitidas (funções do Cloud Run) (terraform-google-secured-data-warehouse-onprem-ingest only)

cloudfunctions.allowedIngressSettings

ALLOW_INTERNAL_AND_GCLB

Controles de segurança para fontes de dados externas

As seções a seguir descrevem os controles que se aplicam à ingestão de dados de fontes externas.

Conexão criptografada com Google Cloud

Ao importar dados de fontes externas, use o Cloud VPN ou o Cloud Interconnect para proteger todos os dados que fluem entre Google Cloud e seu ambiente. Essa arquitetura empresarial recomenda a Interconexão dedicada, porque ela fornece uma conexão direta e uma alta capacidade, o que é importante se você estiver transmitindo muitos dados.

Para permitir o acesso a Google Cloud no seu ambiente, é preciso definir endereços IP permitidos nas regras da política de níveis de acesso.

Criptografia do lado do cliente

Antes de mover seus dados sensíveis para o Google Cloud, criptografe seus dados localmente para protegê-los em repouso e em trânsito. É possível usar a biblioteca de criptografia Tink ou outras bibliotecas de criptografia. A biblioteca de criptografia do Tink é compatível com a criptografia AEAD do BigQuery, que a arquitetura usa para descriptografar dados criptografados no nível da coluna após a importação.

A biblioteca de criptografia Tink usa DEKs geradas automaticamente ou no Cloud HSM. Para encapsular ou proteger a DEK, use uma KEK gerada no Cloud HSM. A KEK é um conjunto de chaves de criptografia CMEK simétrica armazenado com segurança no Cloud HSM e gerenciado com papéis e permissões do IAM.

Durante o processamento, a DEK encapsulada e os dados são armazenados no BigQuery. O BigQuery inclui duas tabelas: uma para os dados e outra para a DEK encapsulada. Quando os analistas precisam visualizar dados confidenciais, o BigQuery pode usar a descriptografia AEAD para decodificar a DEK com a KEK e descriptografar a coluna protegida.

Além disso, a criptografia no cliente usando o Tink protege ainda mais seus dados por meio da criptografia de colunas de dados confidenciais no BigQuery. A arquitetura usa as seguintes chaves de criptografia do Cloud HSM:

  • Uma chave CMEK para o processo de ingestão que também é usada pelo Pub/Sub, pipeline do Dataflow para streaming, upload em lote do Cloud Storage e artefatos do Cloud Run Functions para uploads em lote subsequentes.
  • A chave criptográfica encapsulada pelo Cloud HSM para os dados criptografados na sua rede usando o Tink.
  • Chave CMEK para o armazenamento do BigQuery no projeto de dados.

Especifique o local da CMEK, que determina a localização geográfica em que a chave é armazenada e fica disponível para acesso. É preciso garantir que a CMEK esteja no mesmo local que os recursos. Por padrão, as CMEKs são alternadas a cada 30 dias.

Se as obrigações de compliance da sua organização exigirem o gerenciamento externo das suas próprias chaves no Google Cloud, será possível ativar o Gerenciador de chaves externo do Cloud. Se você usar chaves externas, será responsável pelas atividades de gerenciamento, incluindo a rotação de chaves.

Mascaramento de dados dinâmico

Para ajudar no compartilhamento e na aplicação de políticas de acesso a dados em grande escala, configure o mascaramento de dados dinâmico. Com a máscara de dados dinâmica, as consultas podem mascarar automaticamente os dados da coluna usando os seguintes critérios:

  • As regras de mascaramento aplicadas à coluna no tempo de execução da consulta.
  • Os papéis atribuídos ao usuário que está executando a consulta. Para acessar dados de coluna não mascarados, o analista de dados precisa ter o papel Leitor refinado.

Para definir o acesso de colunas no BigQuery, crie tags de política. Por exemplo, a taxonomia criada no exemplo autônomo cria a tag de política 1_Sensitive para colunas que incluem dados que não podem ser publicados, como o limite de crédito. A regra de mascaramento de dados padrão é aplicada a essas colunas para ocultar o valor da coluna.

Qualquer item que não esteja marcado com tag estará disponível para todos os usuários com acesso ao data warehouse. Esses controles de acesso garantem que, mesmo após a gravação dos dados no BigQuery, eles não possam ser lidos até que o acesso seja explicitamente concedido ao usuário.

Criptografia e descriptografia no nível da coluna

A criptografia no nível da coluna permite criptografar dados no BigQuery de forma mais granular. Em vez de criptografar uma tabela inteira, você seleciona as colunas que contêm dados sensíveis no BigQuery, e apenas essas colunas são criptografadas. O BigQuery usa funções de criptografia e descriptografia AEAD que criam os conjuntos de chaves que contêm as chaves para criptografia e descriptografia. Essas chaves são então usadas para criptografar e descriptografar valores individuais em uma tabela e fazer a rotação de chaves dentro de um conjunto de chaves. A criptografia no nível da coluna oferece controle de acesso duplo sobre dados criptografados no BigQuery, porque o usuário precisa ter permissões na tabela e na chave de criptografia para ler dados em texto não criptografado.

Data Profiler para BigQuery com proteção de dados sensíveis

O Data Profiler permite identificar as localizações de dados confidenciais e de alto risco nas tabelas do BigQuery. O Data Profiler verifica e analisa automaticamente todas as tabelas e colunas do BigQuery em toda a organização, incluindo todas as pastas e projetos. Em seguida, o criador de perfil de dados gera métricas como os infoTypes previstos, os níveis de risco e confidencialidade dos dados avaliados e os metadados sobre as tabelas. Com esses insights, é possível tomar decisões fundamentadas sobre como proteger, compartilhar e usar seus dados.

Controles de segurança para fontes de dados internas

As seções a seguir descrevem os controles que se aplicam à ingestão de dados de fontesGoogle Cloud .

Gerenciamento e criptografia de chaves para processamento

Ambas as opções de transferência (Cloud Storage ou Pub/Sub) usam o Cloud HSM para gerenciar a CMEK. Você usa as chaves CMEK para ajudar a proteger seus dados durante o processamento. A Proteção de Dados Sensíveis protege ainda mais seus dados criptografando dados confidenciais com os detectores que você configura.

Para ingerir dados, use as seguintes chaves de criptografia:

  • Uma chave CMEK para o processo de ingestão que também é usada pelo pipeline do Dataflow e pelo serviço Pub/Sub.
  • A chave criptográfica encapsulada pelo Cloud HSM para o processo de desidentificação de dados usando a Proteção de dados sensíveis.
  • Duas chaves CMEK, uma para o data warehouse do BigQuery no projeto de dados não confidenciais e outra para o data warehouse no projeto de dados confidenciais. Para mais informações, consulte Gerenciamento de chaves.

Especifique o local da CMEK, que determina a localização geográfica em que a chave é armazenada e fica disponível para acesso. É preciso garantir que a CMEK esteja no mesmo local que os recursos. Por padrão, as CMEKs são alternadas a cada 30 dias.

Se as obrigações de compliance da sua organização exigirem o gerenciamento externo das suas próprias chaves no Google Cloud, será possível ativar o EKM do Cloud. Se você usar chaves externas, será responsável pelas atividades de gerenciamento de chaves, incluindo a rotação de chaves.

Desidentificação de dados

Você usa a Proteção de Dados Sensíveis para desidentificar os dados estruturados e não estruturados durante a fase de ingestão. Para dados estruturados, você usa transformações de registro com base em campos para desidentificar dados. Para conferir um exemplo dessa abordagem, consulte a pasta /examples/de_identification_template/. Este exemplo verifica os dados estruturados em busca de números de cartão de crédito e PINs de cartão. Para dados não estruturados, use tipos de informações para desidentificar dados.

Para desidentificar dados marcados como confidenciais, use a proteção de dados sensíveis e um pipeline do Dataflow para tokenizá-los. Esse pipeline processa os dados do Cloud Storage e os envia para o data warehouse do BigQuery.

Para mais informações sobre o processo de desidentificação de dados, consulte governança de dados.

Controles de acesso no nível da coluna

Para ajudar a proteger dados confidenciais, use controles de acesso para colunas específicas no armazém do BigQuery. Para acessar os dados nessas colunas, um analista de dados precisa ter a função Leitor refinado.

Para definir o acesso de colunas no BigQuery, crie tags de política. Por exemplo, o arquivo taxonomy.tf no módulo exemplo bigquery-confidential-data cria as seguintes tags:

  • Uma tag de política 3_Confidential para colunas com informações muito confidenciais, como números de cartão de crédito. Os usuários que têm acesso a essa tag também têm acesso a colunas marcadas com as tags de política 2_Private ou 1_Sensitive.
  • Uma tag de política 2_Private para colunas que incluem informações sensíveis de identificação pessoal (PII), como o nome de uma pessoa. Os usuários que têm acesso a essa tag também têm acesso a colunas marcadas com a tag de política 1_Sensitive. Os usuários não têm acesso a colunas marcadas com a tag de política 3_Confidential.
  • Uma tag de política 1_Sensitive para colunas que incluem dados que não podem ser publicados, como o limite de crédito. Os usuários que têm acesso a essa tag não têm acesso a colunas marcadas com as tags de política 2_Private ou 3_Confidential.

Tudo o que não estiver marcado estará disponível para todos os usuários com acesso ao data warehouse.

Esses controles de acesso garantem que, mesmo depois da nova identificação, os dados não possam ser lidos até que o acesso seja explicitamente concedido ao usuário.

Observação: use as definições padrão para executar os exemplos. Para mais práticas recomendadas, consulte Práticas recomendadas para uso de tags de política no BigQuery.

Contas de serviço com papéis limitados

Você precisa limitar o acesso ao projeto de dados confidenciais para que apenas usuários autorizados possam visualizar os dados confidenciais. Para fazer isso, crie uma conta de serviço com o papel Usuário da conta de serviço (roles/iam.serviceAccountUser) que os usuários autorizados precisam personificar. A representação da conta de serviço ajuda os usuários a usar contas de serviço sem fazer o download das chaves da conta de serviço, o que melhora a segurança geral do projeto. A representação cria um token de curto prazo que tem permissão para fazer o download de usuários autorizados com o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Gerenciamento e criptografia de chaves para armazenamento e reidentificação

Gerencie chaves CMEK separadas para seus dados confidenciais para poder reidentificar os dados. Use o Cloud HSM para proteger as chaves. Para reidentificar seus dados, use as seguintes chaves:

  • Uma chave CMEK usada pelo pipeline do Dataflow para o processo de reidentificação.
  • A chave criptográfica original que a Proteção de dados confidenciais usa para desidentificar seus dados.
  • Uma chave CMEK para o armazenamento do BigQuery no projeto de dados confidenciais.

Como mencionado em Gerenciamento de chaves e criptografia para ingestão, é possível especificar os períodos de CMEK e localização do CMEK. É possível usar o Cloud EKM se ele for exigido pela organização.

Operações

É possível ativar a geração de registros e os recursos do nível Premium ou Enterprise do Security Command Center, como a análise de integridade de segurança e a detecção de ameaças. Esses controles ajudam você a fazer o seguinte:

  • Monitore quem está acessando seus dados.
  • Confira se a auditoria foi realizada de maneira adequada.
  • Gerar descobertas para recursos de nuvem configurados incorretamente
  • Ofereça suporte às equipes de gerenciamento e operações de incidentes para responder a problemas que possam ocorrer.

Transparência no acesso

A transparência no acesso oferece uma notificação em tempo real quando os suportes do Google precisam de acesso aos seus dados. Os registros de transparência no acesso são gerados sempre que uma pessoa acessa o conteúdo. Somente funcionários do Google com justificativas comerciais válidas (por exemplo, um caso de suporte) podem ter acesso.

Logging

Para ajudar a atender aos requisitos de auditoria e receber insights sobre seus projetos, configure o Google Cloud Observability com registros de dados dos serviços que você quer rastrear. O módulo centralized-logging nos repositórios configura as seguintes práticas recomendadas:

Para todos os serviços nos projetos, os registros precisam incluir informações sobre leitura e gravação de dados e informações sobre a leitura dos administradores. Para outras práticas recomendadas de geração de registros, consulte Controles de detecção.

Alertas e monitoramento

Depois de implantar a arquitetura, configure alertas para notificar a central de operações de segurança (SOC) de que pode estar ocorrendo um incidente de segurança. Por exemplo, é possível usar alertas para informar seu analista de segurança quando uma permissão do IAM for alterada. Para mais informações sobre como configurar alertas do Security Command Center, consulte Como configurar notificações de localização. Para alertas extras que não são publicados pelo Security Command Center, é possível configurar alertas com o Cloud Monitoring.

Outras considerações de segurança

Além dos controles de segurança descritos neste documento, você precisa analisar e gerenciar a segurança e o risco em áreas importantes que se sobrepõem e interagem com o uso desta solução. Isso inclui o seguinte:

  • A segurança do código usado para configurar, implantar e executar jobs do Dataflow e Cloud Run functions.
  • Taxonomia de classificação de dados usada com esta solução.
  • Geração e gerenciamento de chaves de criptografia.
  • O conteúdo, a qualidade e a segurança dos conjuntos de dados que você armazena e analisa no data warehouse.
  • O ambiente geral em que você implanta a solução, incluindo o seguinte:
    • O design, a segmentação e a segurança das redes conectadas a esta solução.
    • A segurança e a governança dos controles do IAM da sua organização.
    • As configurações de autenticação e autorização dos agentes a quem você concede acesso à infraestrutura que faz parte desta solução e que têm acesso aos dados armazenados e gerenciados nessa infraestrutura.

resumo geral

Para implementar a arquitetura descrita neste documento, faça o seguinte:

  1. Determine se você vai implantar a arquitetura com o blueprint de bases empresariais ou por conta própria. Se você optar por não implantar o blueprint de bases empresariais, verifique se o ambiente tem uma linha de base de segurança semelhante.
  2. Para importar dados de fontes externas, configure uma conexão de Interconexão dedicada com sua rede.
  3. Leia o arquivo terraform-google-secured-data-warehouse README ou o arquivo terraform-google-secured-data-warehouse-onprem-ingest README e verifique se você atende a todos os pré-requisitos.
  4. Verifique se a identidade do usuário tem os papéis Usuário da conta de serviço (roles/iam.serviceAccountUser) e Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator) para a pasta de desenvolvimento da sua organização, conforme descrito em Estrutura da organização. Se você não tem uma pasta para testes, crie uma pasta e configure o acesso.

  5. Registre o ID da conta de faturamento, o nome de exibição da organização, o ID da pasta de teste ou demonstração e os endereços de e-mail dos seguintes grupos de usuários:

    • Analistas de dados
    • Visualizador de dados criptografados
    • Leitor de texto simples
    • Engenheiros de dados
    • Administradores de rede
    • Administradores de segurança
    • Analistas de segurança
  6. Crie os projetos. Para conferir uma lista de APIs que você precisa ativar, consulte o README.

  7. Crie a conta de serviço do Terraform e atribua os papéis apropriados a todos os projetos.

  8. Configure a política de controle de acesso.

  9. Para Google Cloud fontes de dados que usam o repositório terraform-google-secured-data-warehouse, implante o tutorial no ambiente de teste para conferir a solução em ação. Como parte do processo de teste, considere o seguinte:

    1. Adicione seus próprios dados de amostra ao armazenamento do BigQuery.
    2. Trabalhe com um analista de dados na sua empresa para testar o acesso dele aos dados confidenciais e se eles podem interagir com os dados do BigQuery da maneira esperada.
  10. Para fontes de dados externas que usam o repositório terraform-google-secured-data-warehouse-onprem-ingest, implante a solução no ambiente de teste:

    1. Clone e execute os scripts do Terraform para configurar um ambiente no Google Cloud.
    2. Instale a biblioteca de criptografia do Tink na sua rede.

    3. Configure o Application Default Credentials para executar a biblioteca do Tink na rede.

    4. Crie chaves de criptografia com o Cloud KMS.

    5. Gerar conjuntos de chaves criptografados com o Tink.

    6. Criptografe dados com o Tink usando um dos seguintes métodos:

    7. Faça upload de dados criptografados para o BigQuery usando streaming ou uploads em lote.

  11. Para fontes de dados externas, verifique se os usuários autorizados podem ler dados não criptografados do BigQuery usando a função de descriptografia AEAD do BigQuery. Por exemplo, execute a seguinte função de criação de descriptografia:

    Execute a consulta de criação de visualização:

    CREATE OR REPLACE VIEW `{project_id}.{bigquery_dataset}.decryption_view` AS
    
    SELECT
     Card_Type_Code,
     Issuing_Bank,
     Card_Number,
     `bigquery_dataset.decrypt`(Card_Number) AS Card_Number_Decrypted
    FROM `project_id.dataset.table_name`
    

    Execute a consulta de seleção na visualização:

    SELECT
      Card_Type_Code,
      Issuing_Bank,
      Card_Number,
      Card_Number_Decrypted
    FROM
    `{project_id}.{bigquery_dataset}.decrypted_view`
    

    Para mais consultas e casos de uso, consulte Criptografia no nível da coluna com o Cloud KMS.

  12. Use o Security Command Center para verificar os projetos recém-criados de acordo com seus requisitos de conformidade.

  13. Implante a arquitetura no ambiente de produção.

A seguir