Por padrão,o Google Cloud Serverless para Apache Spark criptografa o conteúdo do cliente em repouso. O Serverless para Apache Spark executa a criptografia, e você não precisa 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 Serverless para Apache Spark. Ao usar chaves do Cloud KMS, é possível 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. Com o Cloud KMS, também é possível monitorar o uso de chaves, visualizar registros de auditoria e controlar ciclos de vida de chaves. 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 Serverless para Apache Spark é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Usar CMEK
Siga as etapas desta seção para usar a CMEK e criptografar os dados que o Google Cloud sem servidor para Apache Spark grava no disco permanente e no bucket de preparo do Dataproc.
Crie uma chave usando o Cloud Key Management Service (Cloud KMS).
Copie o nome do recurso.
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Permita que as contas de serviço do Compute Engine, do Dataproc e do agente de serviço do Cloud Storage usem sua chave:
- Consulte Proteger recursos usando chaves do Cloud KMS > Papéis obrigatórios para atribuir o papel Criptografador/descriptografador de CryptoKey do Cloud KMS à conta de serviço do agente de serviço do Compute Engine. Se essa conta de serviço não estiver listada na página do IAM no console do Google Cloud , clique em Incluir concessões de papel fornecidas pelo Google para listá-la.
Atribua o papel Criptografador/Descriptografador de CryptoKey do Cloud KMS à conta de serviço do agente de serviço do Dataproc. Use 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:
KMS_PROJECT_ID
: o ID do seu projeto Google Cloud que executa o Cloud KMS. Esse projeto também pode ser o que executa recursos do Dataproc.PROJECT_NUMBER
: o número do projeto (e não o ID do projeto do Google Cloud que executa recursos do Dataproc.Ative a API Cloud KMS no projeto que executa recursos do Serverless para Apache Spark.
Se o papel de agente de serviço do Dataproc não estiver anexado à conta de serviço do agente de serviço do Dataproc, adicione a permissão
serviceusage.services.use
à função personalizada anexada à conta de serviço do agente de serviço do Dataproc. Se o papel de agente de serviço do Dataproc estiver anexado à conta de serviço do agente de serviço do Dataproc, pule esta etapa.Siga as etapas para adicionar sua chave ao bucket.
Ao enviar uma carga de trabalho em lote:
- Especifique sua chave no parâmetro
kmsKey
em lote. - Especifique o nome do bucket do Cloud Storage no parâmetro
stagingBucket
em lote.
- Especifique sua chave no parâmetro
Ao criar uma sessão interativa ou um modelo de sessão:
- Especifique sua chave no parâmetro
kmsKey
da sessão. - Especifique o nome do bucket do Cloud Storage no parâmetro de sessão
stagingBucket
.
- Especifique sua chave no parâmetro