Usar CMEK com o Dataproc sem servidor

Quando você usa o Dataproc sem servidor, os dados são armazenados em discos na infraestrutura sem servidor subjacente e em um bucket de preparo do Cloud Storage. Esses dados são criptografados com uma chave de criptografia de dados (DEK, na sigla em inglês) gerada pelo Google e uma chave de criptografia de chaves (KEK, na sigla em inglês). É possível usar uma chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês) para criar, usar e revogar a chave de criptografia de chaves (KEK, na sigla em inglês). O Google mantém o controle sobre a chave de criptografia de dados (DEK). Para mais informações sobre chaves de criptografia de dados do Google, consulte Criptografia padrão em repouso.

Usar CMEK

Siga as etapas desta seção para usar a CMEK para criptografar dados que o Dataproc sem servidor 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.

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

  3. Ative as contas de serviço do Compute Engine, Dataproc e Cloud Storage Service Agent para usar a 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 projeto do Google Cloud que executa o Cloud KMS. Esse também pode ser o projeto que executa os recursos do Dataproc.

      PROJECT_NUMBER: o número (não o ID do projeto) do projeto do Google Cloud que executa os recursos do Dataproc.

    3. 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, pule esta etapa.

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

  4. Quando você envia uma carga de trabalho em lote:

    1. Especifique sua chave no parâmetro Batch kmsKey.
    2. Especifique o nome do bucket do Cloud Storage no parâmetro Batch stagingBucket.