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:
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
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
Na Google Cloud consola, aceda à página Dataproc Metastore:
Na parte superior da página Dataproc Metastore, clique em Criar.
É apresentada a página Criar serviço.
Configure o serviço conforme necessário.
Em Encriptação, clique em Chave de encriptação gerida pelo cliente (CMEK).
Selecione a chave gerida pelo cliente.
Clique em Enviar.
Valide a configuração de encriptação do serviço:
Na Google Cloud consola, aceda à página Dataproc Metastore:
Na página Dataproc Metastore, clique no nome do serviço que quer ver.
É apresentada a página Detalhes do serviço.
No separador Configuração, verifique se os detalhes mostram que a CMEK está ativada.
gcloud
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.