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, autorizações de acesso e 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 suas 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 CMEK é suportada para serviços de Metastore do Dataproc de região única e multirregião (pré-visualização).

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

  • 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 novamente disponível. Para mais considerações ao usar chaves externas, consulte o artigo Considerações sobre o Cloud EKM.

Limitações

Tenha em atenção as seguintes limitações quando usar o Dataproc Metastore com CMEK.

  • Não pode 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 porta-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:

    Se for configurar a CMEK para um serviço do Dataproc Metastore de várias regiões, tem de conceder a cada chave as autorizações do Cloud KMS necessárias para as contas de serviço do Dataproc Metastore e do Cloud Storage.

      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:

    Aceda à 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 do recurso da chave.

Crie um serviço de várias regiões com uma chave CMEK

Para serviços CMEK do Dataproc Metastore multirregionais, têm de ser fornecidas várias chaves de encriptação. Isto inclui uma chave para cada região constituinte do serviço Dataproc Metastore multirregional: uma chave para a região de testemunho do Spanner e uma chave para o continente.

Para obter informações sobre o seu serviço multirregião e as regiões com as quais está configurado, pode executar o seguinte comando.

gcloud metastore locations describe LOCATION
  • Substitua LOCATION pela multirregião na qual criou o serviço Dataproc Metastore.

Para criar um serviço multirregional com uma chave CMEK

Siga os passos abaixo para configurar a encriptação CMEK para um serviço Dataproc Metastore de várias regiões.

Consola

  1. Na Google Cloud consola, aceda à página do 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. Selecione Dataproc Metastore 2.

  4. Na secção Preços e capacidade, selecione Enterprise Plus – Região dupla.

  5. Para Protocolo de ponto final, selecione o ponto final adequado.

  6. Em Encriptação, selecione Chave do Cloud KMS.

  7. Selecione as chaves a usar para cada região, por exemplo, a região de testemunho do Spanner e o continente.

  8. Configure as restantes opções de serviço conforme necessário.

  9. Clique em Enviar.

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

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

    Aceda ao Dataproc Metastore

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

    É apresentado o Detalhe do serviço.

  3. No separador Configuração, verifique se as CMEK estão ativadas.

gcloud

  1. Para criar um serviço multirregional com encriptação CMEK, execute o comando gcloud beta metastore services create:
gcloud beta metastore services create SERVICE \
    --location=LOCATION \
    --instance-size=INSTANCE_SIZE \
    --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT

Substitua o seguinte:

  • SERVICE: o nome do seu novo serviço Dataproc Metastore.
  • LOCATION: a Google Cloud multirregião onde quer criar o seu serviço Dataproc Metastore. Também pode definir uma localização predefinida.
  • INSTANCE_SIZE: o tamanho da instância do seu serviço de Metastore do Dataproc multirregional. Por exemplo, pequeno, médio ou grande.
  • KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT: o ID de recurso da chave para cada uma das chaves obrigatórias, incluindo uma chave no continente e uma chave na região de testemunho do Spanner. Os nomes das chaves estão listados no formato seguinte no seu projeto: projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME.

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, a descarga da base de dados exportada é protegida de acordo com as definições de CMEK do contentor de armazenamento de destino.

O que se segue?