Encripte dados com chaves de encriptação geridas pelo cliente

Por predefinição, o Dataproc Metastore encripta o conteúdo do cliente em repouso. O Dataproc Metastore processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.

Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Dataproc Metastore. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.

Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Dataproc Metastore é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).

Antes de começar

Considerações

Considere os seguintes pontos quando usar o Dataproc Metastore com a CMEK.

  • A base de dados do Cloud Monitoring não suporta a encriptação CMEK. Em alternativa, oGoogle Cloud usa chaves de encriptação da Google para proteger os nomes e as configurações de serviço dos seus serviços Dataproc Metastore.

  • Se quiser que o serviço Dataproc Metastore seja executado num perímetro dos VPC Service Controls, tem de adicionar a API Cloud Key Management Service (Cloud KMS) ao perímetro.

  • Quando usa uma chave do Cloud External Key Manager, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente. Se a chave ficar indisponível durante o período de criação do serviço Dataproc Metastore, a criação do serviço falha. Depois de criar um serviço de Metastore do Dataproc, se a chave ficar indisponível, o serviço fica indisponível até a chave ficar disponível novamente. Para mais considerações ao usar chaves externas, consulte o artigo Considerações sobre o Cloud EKM.

Limitações

Considere as seguintes limitações quando usar o Dataproc Metastore com CMEK.

  • Não é possível ativar a CMEK num serviço existente.

  • Não pode rodar CMEKs usadas por um serviço com CMEK ativado.

  • Não pode usar CMEKs para encriptar dados do utilizador em trânsito, como consultas e respostas do utilizador.

Configure a CMEK para o Dataproc Metastore

Se ainda não tiver uma chave do Cloud KMS, pode criar uma para o seu serviço Dataproc Metastore. Caso contrário, pode ignorar este passo e usar uma chave existente.

Opcional: crie uma nova chave do Cloud KMS

Para criar uma chave do Cloud KMS, primeiro cria um conjunto de chaves e, em seguida, cria uma chave armazenada no conjunto de chaves.

Para criar um conjunto de chaves

Para criar um conjunto de chaves, execute o seguinte comando gcloud kms keyrings create

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

Substitua o seguinte:

  • KEY_RING: um nome para o seu conjunto de chaves.
  • PROJECT_ID: o ID do Google Cloud projeto no qual quer criar o conjunto de chaves.
  • LOCATION: a região na qual quer criar o conjunto de chaves.

Para criar uma chave

Para criar uma chave armazenada no seu porta-chaves, execute o seguinte comando: gcloud kms keys create

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

Substitua o seguinte:

  • KEY_NAME: o nome da chave.
  • KEY_RING: o nome do conjunto de chaves que criou no passo anterior.

Conceda autorizações de chaves do Cloud KMS

Use os seguintes comandos para conceder autorizações de chaves do Cloud KMS para o Dataproc Metastore:

  1. Conceda autorizações à conta de serviço do agente de serviço do Dataproc Metastore:

      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 autorizaçõ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

Crie um serviço de região única com uma chave CMEK

Siga os passos abaixo para configurar a encriptação CMEK para um serviço Dataproc Metastore de região única.

Consola

  1. Na Google Cloud consola, aceda à página Dataproc Metastore:

    Aceda ao Dataproc Metastore

  2. Na parte superior da página Dataproc Metastore, clique em Criar.

    É apresentada a página Criar serviço.

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

  4. Em Encriptação, clique em Chave de encriptação gerida pelo cliente (CMEK).

  5. Selecione a chave gerida pelo cliente.

  6. Clique em Enviar.

Valide a configuração de encriptação do serviço:

  1. Na Google Cloud consola, aceda à página Dataproc Metastore:

    Aceder à Google Cloud consola

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

    É apresentada a página Detalhes do serviço.

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

gcloud

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

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

    Substitua o seguinte:

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

Importe e exporte dados de e para um serviço com CMEK

Se quiser que os seus dados permaneçam encriptados com uma chave gerida pelo cliente durante uma importação, tem de definir a CMEK no contentor do Cloud Storage antes de importar dados a partir dele.

Pode importar a partir de um contentor do Cloud Storage não protegido por CMEK. Após a importação, os dados armazenados no Dataproc Metastore são protegidos de acordo com as definições de CMEK do serviço de destino.

Quando exporta, o despejo da base de dados exportado é protegido de acordo com as definições de CMEK do contentor de armazenamento de destino.

O que se segue?