Como usar chaves de criptografia gerenciadas pelo cliente (CMEK)

Nesta página, você verá como usar uma chave de criptografia do Cloud Key Management Service (Cloud KMS) com o Cloud Data Fusion.

Uma chave de criptografia gerenciada pelo cliente (CMEK) permite a criptografia de dados em repouso com uma chave que pode ser controlada por meio do Cloud KMS. A CMEK fornece ao usuário controle sobre os dados gravados nos recursos internos do Google em projetos de locatário e dados gravados pelos pipelines do Cloud Data Fusion, incluindo:

  • Registros e metadados do pipeline
  • Metadados do cluster do Dataproc
  • Vários coletores de dados, ações e origens do Cloud Storage, BigQuery, Pub/Sub e Cloud Spanner

Recursos do Cloud Data Fusion

Para uma lista de plug-ins compatíveis com o Cloud Data Fusion compatíveis com CMEK, consulte os plug-ins compatíveis.

O Cloud Data Fusion é compatível com CMEK para clusters do Dataproc. O Cloud Data Fusion cria um cluster temporário do Dataproc para uso no pipeline e o exclui quando o pipeline é concluído. A CMEK protege os metadados do cluster gravados nas informações a seguir:

  • Discos permanentes (DP) anexados a VMs de cluster
  • Saída do driver do job e outros metadados gravados no bucket de preparo do Dataproc criado automaticamente ou criado pelo usuário

Configurar CMEK

Criar uma chave do Cloud KMS

Crie uma chave do Cloud KMS.

É possível criar a chave no mesmo projeto do Google Cloud que a instância do Cloud Data Fusion ou em um projeto de usuário separado. O local do keyring do Cloud KMS precisa corresponder à região em que você quer criar a instância. Uma chave de região global ou de várias regiões não é permitida.

Consiga o nome do recurso para a chave

API REST

Encontre o nome do recurso da chave que você criou com o seguinte comando:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Substitua o seguinte:

  • PROJECT_ID: o projeto do cliente que hospeda a instância do Cloud Data Fusion
  • REGION: uma região do Google Cloud que esteja perto do seu local, por exemplo, us-east1
  • KEY_RING_NAME: o nome do keyring que agrupa as chaves criptográficas.
  • KEY_NAME: o nome da chave do Cloud KMS

Console

  1. Acesse a página Chaves criptográficas.

    Acessar chaves criptográficas

  2. Ao lado da sua chave, clique em Mais .

  3. Selecione Copiar nome do recurso para copiar o nome do recurso para a área de transferência.

Atualize as contas de serviço do seu projeto para usar a chave

Para configurar as contas de serviço de seu projeto para usar sua chave:

  1. Obrigatório: conceda o papel de criptografador/descriptografador do Cloud KMS CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) ao agente de serviço do Cloud Data Fusion. Consulte Como conceder papéis a uma conta de serviço para recursos específicos. Essa conta está no seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com

    Conceder o papel criptografador/descriptografador do Cloud KMS CryptoKey ao agente de serviço do Cloud Data Fusion permite que o Cloud Data Fusion use o CMEK para criptografar todos os dados do cliente armazenados em projetos de locatário.

  2. Obrigatório: conceda o papel de criptografia/descriptografia de CryptoKey do Cloud KMS ao agente de serviço do Compute Engine. Consulte Como atribuir uma chave do Cloud KMS a uma conta de serviço do Cloud Storage. Essa conta, que por padrão recebe o papel de agente de serviço do Compute Engine, tem o seguinte formato:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    Conceder o papel criptografador/descriptografador do Cloud KMS CryptoKey ao agente de serviço do Compute Engine permite que o Cloud Data Fusion use CMEKs para criptografar metadados do disco permanente (PD, na sigla em inglês) gravados pelo cluster do Dataproc em execução no pipeline.

  3. Obrigatório: conceda o papel de criptografia/descriptografia de CryptoKey do Cloud KMS ao agente de serviço do Cloud Storage. Consulte Como atribuir uma chave do Cloud KMS a um agente de serviço do Cloud Storage. Este agente de serviço tem o seguinte formato:

    service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com

    Conceder o papel criptografador/descriptografador do Cloud KMS CryptoKey ao agente de serviço do Cloud Storage permite que o Cloud Data Fusion use dados do CMEK para criptografar dados gravados no bucket de preparo do cluster do Dataproc e quaisquer outros recursos do Cloud Storage usados pelo pipeline.

  4. Opcional: se o pipeline usar recursos do BigQuery, conceda o papel de criptografia/descriptografia de CryptoKey do Cloud KMS à conta de serviço do BigQuery. Consulte Permissão de criptografia e descriptografia. O formato da conta é:

    bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com

  5. Opcional: se o pipeline usar recursos do Pub/Sub, conceda o papel de criptografia/descriptografia de CryptoKey do Cloud KMS à conta de serviço do Pub/Sub. Consulte Como usar chaves de criptografia gerenciadas pelo cliente. O formato da conta é:

    service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com

  6. Opcional: se o pipeline usar recursos do Spanner, conceda o papel de criptografia/descriptografia de CryptoKey do Cloud KMS à conta de serviço do Spanner. O formato da conta é:

    service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com

Criar uma instância do Cloud Data Fusion com CMEK

A CMEK está disponível em todas as edições do Cloud Data Fusion versão 6.5.0 e posterior.

API REST

  1. Para criar uma instância com uma chave de criptografia gerenciada pelo cliente, defina as seguintes variáveis de ambiente:

    export PROJECT=PROJECT_ID
    export LOCATION=REGION
    export INSTANCE=INSTANCE_ID
    export DATA_FUSION_API_NAME=datafusion.googleapis.com
    export KEY=KEY_NAME
    

    Substitua o seguinte:

    • PROJECT_ID: o projeto do cliente que hospeda a instância product_name_short}}
    • REGION: uma região do Google Cloud que fica perto do seu local, por exemplo, us-east1
    • INSTANCE_ID: o nome da instância do Cloud Data Fusion.
    • KEY_NAME: o nome completo do recurso da chave CMEK;
  2. Execute o comando a seguir para criar uma instância do Cloud Data Fusion:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
    

Console

  1. Acesse a página Instâncias do Cloud Data Fusion.

    Acessar "Instâncias"

  2. Clique em Criar uma instância.

  3. Na página Criar uma instância, expanda as Opções avançadas e selecione Usar uma chave de criptografia gerenciada pelo cliente (CMEK).

  4. No campo Selecionar uma chave gerenciada pelo cliente, selecione o nome do recurso para a chave.

    Selecione o nome da chave de criptografia

  5. Depois de inserir todos os detalhes da instância, clique em Criar. Quando a instância estiver pronta para uso, ela será exibida na página Instâncias.

Verificar se a CMEK está ativada em uma instância

Console

Para verificar se a CMEK está ativada em uma instância do Cloud Data Fusion:

  1. Acesse a página Instâncias do Cloud Data Fusion.

    Acessar "Instâncias"

  2. Clique em Ver instância para a instância desejada.

    A página Detalhes da instância é aberta.

    Se CMEK estiver ativada, o campo Chave de criptografia será mostrado como Disponível.

    A chave de criptografia está disponível na sua instância

Quando a CMEK está desativada, o campo Chave de criptografia é mostrado como Não disponível.

Usar CMEK com plug-ins compatíveis

Ao definir o nome da chave de criptografia, use o seguinte formato:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Nomes das chaves de criptografia

Na tabela a seguir, descrevemos o comportamento da chave nos plug-ins do Cloud Data Fusion compatíveis com CMEK.

Plug-ins compatíveis Comportamento da chave
Coletores do Cloud Data Fusion
Cloud Storage Criptografa dados gravados em qualquer bucket criado pelo plug-in. Se o bucket já existir,
Vários arquivos do Cloud Storage Criptografa dados gravados em qualquer bucket criado pelo plug-in. Se o bucket já existir, esse valor será ignorado.
BigQuery Criptografa dados gravados em qualquer bucket, conjunto de dados ou tabela criado pelo plug-in. Se o bucket, o conjunto de dados ou a tabela já existir, esse valor será ignorado.
BigQuery multitabelas Criptografa dados gravados em qualquer bucket, conjunto de dados ou tabela criado pelo plug-in. Se o bucket, o conjunto de dados ou a tabela já existir, esse valor será ignorado.
o Pub/Sub; Criptografa dados gravados em qualquer tópico criado pelo plug-in. Se o tópico já existir, esse valor será ignorado.
Chave de gancho Criptografa dados gravados em qualquer banco de dados criado pelo plug-in. Se o banco de dados já existir, esse valor será ignorado.
Ações do Cloud Data Fusion
Cloud Storage Create
Cópia do Cloud Storage
Mover Cloud Storage
Marcador de arquivo do Cloud Storage
Criptografa dados gravados em qualquer bucket criado pelo plug-in. Se o bucket já existir, esse valor será ignorado.
Execução do BigQuery Criptografa dados gravados em qualquer conjunto de dados ou tabela criado pelo plug-in. Se o conjunto de dados ou a tabela já existir, esse valor será ignorado.
Origens do Cloud Data Fusion
Fonte do BigQuery Criptografa dados gravados em qualquer bucket criado pelo plug-in. Se o bucket já existir, esse valor será ignorado.
Mecanismo SQL do Cloud Data Fusion
Mecanismo de push pushdown do BigQuery Criptografa dados gravados em qualquer bucket, conjunto de dados ou tabela criado pelo plug-in. Se o bucket, o conjunto de dados ou a tabela já existir, esse valor será ignorado.

Usar CMEK com metadados de cluster do Dataproc

Os perfis de computação pré-criados usam a chave de CMEK fornecida durante a criação da instância para criptografar o Persistent Disk (PD) e os metadados do bucket de preparo gravados pelo cluster do Dataproc em execução no pipeline. Para modificar o uso de outra chave, realize uma das seguintes ações:

  • Recomendado: crie um novo perfil de computação do Dataproc (apenas na edição Enterprise).
  • editar um perfil de computação do Dataproc (edições Basic, Basic ou Enterprise);

Console

  1. Acesse a página Instâncias do Cloud Data Fusion.

    Acessar "Instâncias"

  2. Na coluna Ações da instância, clique em Ver instância.

  3. Na IU da Web do Cloud Data Fusion, clique em SYSTEM ADMIN.

  4. Clique na guia Configuration.

  5. Clique na lista suspensa System Compute Profiles.

  6. Clique em Criar novo perfil.

  7. Selecione Dataproc.

  8. Insira um Rótulo, um Nome e uma Descrição.

  9. Por padrão, o Cloud Data Fusion cria automaticamente um bucket do Cloud Storage para ser usado como o bucket de preparação do Dataproc. Para usar um bucket do Cloud Storage que já existe no projeto, siga estas etapas:

    1. Na seção Configurações gerais, insira o bucket atual do Cloud Storage no campo bucket do Cloud Storage.

    2. Adicione a chave do Cloud KMS ao seu bucket do Cloud Storage.

  10. Consiga o ID do recurso da sua chave do Cloud KMS. Na seção General Settings, insira o ID do recurso no campo Encryption Key Name.

  11. Clique em Criar.

  12. Se mais de um perfil estiver listado na seção System Compute Profiles da guia Configuration, mantenha o ponteiro do mouse sobre o campo do nome do perfil e clique na estrela que aparece para criar o novo perfil do Dataproc.

    Selecione um perfil padrão.

Usar CMEK com outros recursos

A chave CMEK fornecida é definida com a preferência do sistema durante a criação da instância do Cloud Data Fusion. Ele é usado para criptografar dados gravados em recursos recém-criados por coletores de pipeline, como coletores do Cloud Storage, BigQuery, Pub/Sub ou Spanner.

Essa chave se aplica apenas a recursos recém-criados. Se o recurso já existir antes da execução do pipeline, aplique a chave CMEK manualmente a esses recursos.

O local do recurso precisa ser o mesmo da região da chave CMEK. Um recurso de região global ou multirregional não é permitido com CMEK. É possível alterar a chave CMEK fazendo uma das seguintes ações:

  • Use um argumento de ambiente de execução.
  • Defina uma preferência de sistema do Cloud Data Fusion.

Argumento de tempo de execução

  1. Na página do Data Studio do Cloud Data Fusion, clique na seta suspensa à direita do botão Executar.
  2. No campo Nome, use gcp.cmek.key.name.
  3. No campo Valor, digite o ID do recurso.
    Selecione a edição Data Fusion.
  4. Clique em Save.

    O argumento do ambiente de execução que você define aqui se aplica apenas às execuções do pipeline atual.

Preferência

  1. Na IU do Cloud Data Fusion, clique em SYSTEM ADMIN.
  2. Clique na guia Configuration.
  3. Clique na lista suspensa Preferências do Sistema.
  4. Clique em Edit System Preferences.
  5. No campo Chave, digite gcp.cmek.key.name.
  6. No campo Valor, digite o ID do recurso.
    Selecione a edição Data Fusion.
  7. Clique em Salvar e fechar.