Por predefinição, Google Cloud o Serverless para Apache Spark encripta o conteúdo do cliente enquanto inativo. O Serverless para Apache Spark 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 Serverless para Apache Spark. 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 monitorizar a utilização das chaves, 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 seus recursos com CMEKs, a experiência de acesso aos recursos do Serverless for Apache Spark é 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).
Use CMEK
Siga os passos nesta secção para usar a CMEK para encriptar dados que o Google Cloud Serverless para Apache Spark escreve no disco persistente e no contentor de preparação do Dataproc.
Crie uma chave através do Cloud Key Management Service (Cloud KMS).
Copie o nome do recurso.
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Ative as contas de serviço do Compute Engine, Dataproc e agente de serviço do Cloud Storage para usar a sua chave:
- Consulte o artigo Proteja os recursos através de chaves do Cloud KMS > Funções necessárias para atribuir a função Encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço do agente de serviço do Compute Engine. Se esta conta de serviço não estiver listada na página IAM na Google Cloud consola, clique em Incluir concessões de funções fornecidas pela Google para a listar.
Atribua a função Encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço do agente de serviço do Dataproc. Pode usar a Google Cloud CLI para atribuir a função:
gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
KMS_PROJECT_ID
: o ID do seu projeto que executa o Cloud KMS. Google Cloud Este projeto também pode ser o projeto que executa recursos do Dataproc.PROJECT_NUMBER
: o número do projeto (não o ID do projeto) do seu Google Cloud projeto que executa recursos do Dataproc.Ative a API Cloud KMS no projeto que executa recursos do Serverless para Apache Spark.
Se a função de agente do serviço do Dataproc não estiver associada à conta de serviço do agente do serviço do Dataproc, adicione a autorização
serviceusage.services.use
à função personalizada associada à conta de serviço do agente do serviço do Dataproc. Se a função de agente do serviço do Dataproc estiver associada à conta de serviço do agente do serviço do Dataproc, pode ignorar este passo.Siga os passos para adicionar a chave no contentor.
Quando envia uma carga de trabalho em lote:
- Especifique a chave no parâmetro
kmsKey
do lote. - Especifique o nome do contentor do Cloud Storage no parâmetro
stagingBucket
em lote.
- Especifique a chave no parâmetro
Quando cria uma sessão interativa ou um modelo de sessão:
- Especifique a chave no parâmetro de sessão
kmsKey
- Especifique o nome do contentor do Cloud Storage no parâmetro
stagingBucket
de sessão.
- Especifique a chave no parâmetro de sessão