Usar a CMEK com o Google Cloud sem servidor para Apache Spark

Por padrão,o Google Cloud Serverless para Apache Spark criptografa o conteúdo do cliente em repouso. O Serverless para Apache Spark 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 Serverless para Apache Spark. 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 que você monitore o uso de chaves, visualize registros de auditoria e controle 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 Serverless para Apache Spark é semelhante à criptografia padrão do Google. Para mais informações 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.

  1. Crie uma chave usando o Cloud Key Management Service (Cloud KMS).

  2. Copie o nome do recurso.

    Copie o nome do recurso.
    O nome do recurso é criado da seguinte maneira:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Permita que as contas de serviço do Compute Engine, do Dataproc e do agente de serviço do Cloud Storage usem sua chave:

    1. 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.
    2. 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.

    3. Ative a API Cloud KMS no projeto que executa recursos do Serverless para Apache Spark.

    4. 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 ao papel personalizado anexado à 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.

    5. Siga as etapas para adicionar sua chave ao bucket.

  4. Ao enviar uma carga de trabalho em lote:

    1. Especifique sua chave no parâmetro kmsKey em lote.
    2. Especifique o nome do bucket do Cloud Storage no parâmetro stagingBucket em lote.
  5. Ao criar uma sessão interativa ou um modelo de sessão:

    1. Especifique sua chave no parâmetro kmsKey da sessão.
    2. Especifique o nome do bucket do Cloud Storage no parâmetro de sessão stagingBucket.