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).
Antes de começar
Considerações
Considere os seguintes pontos ao usar o metastore do Dataproc com o CMEK.
O CMEK tem suporte para serviços de metastore do Dataproc de região única e multirregional (pré-lançamento).
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 de serviço 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.
Quando você usa um gerenciador de chaves externo do Cloud, o Google não tem controle sobre a disponibilidade da 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 fica indisponível até que a chave volte a ficar disponível. Para mais considerações ao usar chaves externas, consulte Considerações sobre o Cloud EKM.
Limitações
Considere as seguintes limitações ao usar a metastore do Dataproc com o CMEK.
Não é possível ativar a CMEK em um serviço atual.
Não é possível alternar as 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 o CMEK para o metastore do Dataproc
Se você ainda não tiver uma chave do Cloud KMS, crie uma para o serviço Metastore do Dataproc. Caso contrário, pule esta etapa e use uma chave existente.
Opcional: criar uma nova chave do Cloud KMS
Para criar uma chave do Cloud KMS, primeiro crie um keyring e, em seguida, uma chave armazenada no keyring.
Para criar um keyring
Para criar um keyring, execute o seguinte comando
gcloud kms keyrings create
.
gcloud kms keyrings create KEY_RING \ --project=PROJECT_ID \ --location=LOCATION
Substitua:
KEY_RING
: um nome para o keyring.PROJECT_ID
: o ID do projeto Google Cloud 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 comando
gcloud kms keys create
.
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 comandos a seguir para conceder permissões de chave do Cloud KMS ao metastore do Dataproc:
Conceda permissões à conta de serviço do agente de serviço do metastore do Dataproc:
Se você for configurar o CMEK para um serviço de metastore do Dataproc em várias regiões, conceda a cada chave as permissões necessárias do Cloud KMS 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
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 as etapas abaixo para configurar a criptografia CMEK para um serviço do metastore do Dataproc de região única.
Console
No console do Google Cloud , acesse a página do Metastore do Dataproc:
Na parte de cima da página Metastore do Dataproc, clique em Criar.
A página Criar serviço é aberta.
Configure o serviço conforme necessário.
Em Criptografia, clique em Chave de criptografia gerenciada pelo cliente (CMEK).
Selecione a chave gerenciada pelo cliente.
Clique em Enviar.
Verifique a configuração de criptografia do serviço:
No console do Google Cloud , acesse a página Metastore do Dataproc:
Na página Metastore do Dataproc, clique no nome do serviço que você quer acessar.
A página Detalhes do serviço é aberta.
Na guia Configuration, verifique se os detalhes mostram que o CMEK está ativado.
gcloud
Para criar um serviço de região única com criptografia CMEK, execute o comando Google Cloud
gcloud metastore services create
: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.
Criar um serviço multirregional com uma chave CMEK
Para serviços de CMEK do metastore do Dataproc multirregional, é necessário fornecer várias chaves de criptografia. Isso inclui uma chave para cada região constituinte do serviço multirregional do Dataproc Metastore, uma chave para a região de testemunha do Spanner e uma chave para o continente.
Para receber informações sobre o serviço multirregião e as regiões em que ele está configurado, execute o comando a seguir.
gcloud metastore locations describe LOCATION
- Substitua LOCATION pelo multirregional em que você criou o serviço Metastore do Dataproc.
Para criar um serviço multirregional com uma chave CMEK
Siga as etapas abaixo para configurar a criptografia CMEK para um serviço do Dataproc Metastore em várias regiões.
Console
No console do Google Cloud , acesse a página Metastore do Dataproc:
Na parte de cima da página Metastore do Dataproc, clique em Criar.
A página Criar serviço é aberta.
Selecione Dataproc Metastore 2.
Na seção "Preços e capacidade", selecione Enterprise Plus: birregional.
Em Protocolo do endpoint, selecione o endpoint adequado.
Em Criptografia, selecione Chave do Cloud KMS.
Selecione as chaves a serem usadas para cada região, por exemplo, a região de testemunha do Spanner e o continente.
Configure as outras opções de serviço conforme necessário.
Clique em Enviar.
Verifique a configuração de criptografia do serviço:
No console do Google Cloud , acesse a página Metastore do Dataproc:
Na página Metastore do Dataproc, clique no nome do serviço que você quer consultar.
A página Detalhes do serviço é aberta.
Na guia Configuration, verifique se a CMEK está ativada.
gcloud
- Para criar um serviço multirregional com criptografia 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:
SERVICE
: o nome do novo serviço do metastore do Dataproc.LOCATION
: a Google Cloud multirregião em que você quer criar o serviço do Dataproc Metastore. Também é possível definir um local padrão.INSTANCE_SIZE
: o tamanho da instância do seu serviço de metastore multirregional do Dataproc. Por exemplo, pequeno, médio ou grande.KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT
: o ID do recurso da chave para cada uma das chaves necessárias, incluindo uma chave no continente e outra na região de testemunha do Spanner. Os nomes das chaves são listados no formato a seguir no seu projeto:projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
.
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 protegido por 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.