Criptografar dados com chaves de criptografia gerenciadas pelo cliente

Por padrão, o metastore do Dataproc criptografa o conteúdo do cliente em repouso. O metastore do Dataproc executa a criptografia, e você não precisa 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 metastore do Dataproc. Ao usar chaves do Cloud KMS, é possível 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. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. 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 que você configura os recursos com CMEKs, a experiência de acesso aos seus recursos do metastore do Dataproc é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Antes de começar

Considerações

Considere os seguintes pontos ao usar o metastore do Dataproc com CMEK.

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

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

  • Quando você usa uma chave do Cloud External Key Manager, 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 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 fique disponível novamente. Para mais considerações ao usar chaves externas, consulte Considerações do Cloud EKM.

Limitações

Considere as seguintes limitações ao usar o metastore do Dataproc com CMEK.

  • Não é possível ativar a CMEK em um serviço atual.

  • Não é possível alternar CMEKs usadas por um serviço ativado para CMEK.

  • Não é possível usar CMEKs para criptografar dados do usuário em trânsito, como consultas e respostas.

Configurar a CMEK para o metastore do Dataproc

Se você ainda não tiver uma chave do Cloud KMS, crie uma para o serviço do metastore do Dataproc. Caso contrário, pule esta etapa e use uma chave atual.

Opcional: criar uma chave do Cloud KMS

Para criar uma chave do Cloud KMS, primeiro crie um keyring e, em seguida, uma chave armazenada dentro do keyring.

Para criar um keyring

Para criar um keyring, execute o seguinte gcloud kms keyrings create comando.

gcloud kms keyrings create KEY_RING \
  --project=PROJECT_ID \
  --location=LOCATION

Substitua:

  • KEY_RING: um nome para o keyring.
  • PROJECT_ID: o ID do Google Cloud projeto em que você quer criar o keyring.
  • LOCATION: a região em que você quer criar o keyring.

Para criar uma chave

Para criar uma chave armazenada no keyring, execute o seguinte gcloud kms keys create comando.

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

Substitua:

  • KEY_NAME: o nome da chave;
  • KEY_RING: o nome do keyring que você criou na etapa anterior.

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:

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

  1. 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 de região única com uma chave CMEK

Siga estas etapas para configurar a criptografia CMEK para um serviço de região única do metastore do Dataproc.

Console

  1. No Google Cloud console do, acesse 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 será aberta.

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

  4. Em Criptografia, clique em 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 Google Cloud console do, acesse a página Metastore do Dataproc:

    Acessar o Google Cloud console

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

    A página Detalhes do serviço será aberta.

  3. Na guia Configuração, verifique se os detalhes mostram que a CMEK está ativada.

gcloud

  1. Para criar um serviço de região única com criptografia CMEK, execute o Google Cloud gcloud metastore services create comando:

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

    Substitua:

    • SERVICE: o nome do novo serviço;
    • KMS_KEY: o ID do recurso da chave.

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