Criptografar dados com chaves de criptografia gerenciadas pelo cliente

Por padrão, o Dataproc Metastore criptografa o conteúdo do cliente em repouso. O Dataproc Metastore processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de Criptografia padrão do Google.

Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Dataproc Metastore. O uso de chaves do Cloud KMS permite controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. O uso do Cloud KMS também permite visualizar registros de auditoria e controlar ciclos de vida importantes. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.

Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do metastore do Dataproc é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Considerações

  • Não é possível ativar chaves de criptografia gerenciadas pelo cliente em um serviço atual.

  • Não é possível alternar a chave usada por um serviço ativado para CMEK.

  • Não é possível usar chaves de criptografia gerenciadas pelo cliente para criptografar dados de usuários em trânsito, como consultas e respostas.

  • Um serviço ativado para CMEK não é compatível com a sincronização do Data Catalog. A atualização de um serviço ativado para CMEK para ativar a sincronização do Data Catalog falhará. Não é possível criar um novo serviço com os dois recursos ativados.

  • Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente. Se a chave ficar indisponível durante o período de criação do serviço do Metastore do Dataproc, a criação do serviço vai falhar. Depois que um serviço do metastore do Dataproc é criado, se a chave ficar indisponível, o serviço ficará indisponível até que a chave volte a ficar disponível. Para mais considerações ao usar chaves externas, consulte Considerações do Cloud EKM.

  • O banco de dados do Cloud Monitoring não é compatível com criptografia CMEK. Em vez disso, Google Cloud usa chaves de criptografia do Google para proteger os nomes e as configurações dos seus serviços do metastore do Dataproc.

  • Se você quiser que o serviço do metastore do Dataproc seja executado dentro de um perímetro do VPC Service Controls, adicione a API Cloud Key Management Service (Cloud KMS) ao perímetro.

Configurar a compatibilidade com CMEK para o metastore do Dataproc

Para configurar o suporte a CMEK para o metastore do Dataproc, primeiro é necessário conceder permissão de chave do Cloud KMS para as contas de serviço do metastore do Dataproc e do Cloud Storage. Em seguida, crie um serviço de metastore do Dataproc que use uma chave CMEK.

Conceder permissões de chave do Cloud KMS

Use os seguintes comandos para conceder permissões de chave do Cloud KMS ao metastore do Dataproc:

gcloud

  1. Crie uma chave CMEK no Cloud KMS (se ainda não houver uma disponível). O comando abaixo é um exemplo de como criar uma chave de software:

    gcloud config set project PROJECT_ID
    gcloud kms keyrings create KEY_RING \
      --project KEY_PROJECT \
      --location=LOCATION
    
    gcloud kms keys create KEY_NAME \
      --project KEY_PROJECT \
      --location=LOCATION \
      --keyring=KEY_RING \
      --purpose=encryption

    Da mesma forma, é possível criar uma chave HSM ou criar uma chave EKM.

  2. Conceda permissões à conta de serviço do agente de serviço do metastore do Dataproc:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
      --location LOCATION \
      --keyring KEY_RING \
      --member=serviceAccount:$(gcloud beta services identity create \
      --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
      --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
  3. Conceda permissões à conta de serviço do Cloud Storage:

    gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Criar um serviço do metastore do Dataproc com uma chave CMEK

Siga estas etapas para configurar a criptografia CMEK durante a criação do serviço:

Console

  1. No console do Google Cloud, abra a página Metastore do Dataproc:

    Acesse Dataproc Metastore

  2. Na parte de cima da página Metastore do Dataproc, clique em Criar.

    A página Criar serviço é aberta.

  3. Configure o serviço conforme necessário.

  4. Em Criptografia, clique em Usar uma chave de criptografia gerenciada pelo cliente (CMEK).

  5. Selecione a chave gerenciada pelo cliente.

  6. Clique em Enviar.

Verifique a configuração de criptografia do serviço:

  1. No console do Google Cloud, abra a página Metastore do Dataproc:

    Acessar o Console do Google Cloud

  2. Na página Metastore do Dataproc, clique no nome do serviço que você quer acessar.

    A página Detalhes do serviço desse serviço é aberta.

  3. Na guia Configuration, verifique se os detalhes mostram que o CMEK está ativado.

gcloud

  1. Execute o comando gcloud metastore services create para criar um serviço com criptografia CMEK:

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    Substitua:

    • SERVICE: o nome do novo serviço;
    • KMS_KEY: refere-se ao ID do recurso da chave.
  2. Verifique se a criação foi bem-sucedida.

Importar e exportar dados de e para um serviço ativado para CMEK

Se quiser que os dados permaneçam criptografados com uma chave gerenciada pelo cliente durante uma importação, será necessário definir CMEK no bucket do Cloud Storage antes de importar dados dela.

É possível importar de um bucket do Cloud Storage não CMEK. Após a importação, os dados armazenados no Metastore do Dataproc são protegidos de acordo com as configurações de CMEK do serviço de destino.

Durante a exportação, o despejo do banco de dados exportado é protegido de acordo com as configurações de CMEK do bucket de armazenamento de destino.

A seguir