Usa CMEK con Dataproc Serverless

Cuando usas Dataproc Serverless, los datos se almacenan en discos en la infraestructura sin servidores subyacente y en un bucket de etapa de pruebas de Cloud Storage. Estos datos se encriptan con una clave de encriptación de datos (DEK) generada por Google y una clave de encriptación de claves (KEK). Puedes usar una clave de encriptación administrada por el cliente (CMEK) para crear, usar y revocar la clave de encriptación de claves (KEK). Google mantiene el control de la clave de encriptación de datos (DEK). Para obtener más información sobre las claves de encriptación de datos de Google, consulta Encriptación en reposo predeterminada.

Usa CMEK

Sigue los pasos de esta sección para usar CMEK y encriptar los datos que Dataproc Serverless escribe en el disco persistente y en el bucket de etapa de pruebas de Dataproc.

  1. Crea una clave con Cloud Key Management Service (Cloud KMS).

  2. Copia el nombre del recurso.

    El nombre del recurso se construye de la siguiente manera:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Habilita las cuentas de servicio de Compute Engine, Dataproc y el agente de servicio de Cloud Storage para que usen tu clave:

    1. Consulta Protege los recursos con claves de Cloud KMS > Roles obligatorios para asignar el rol Encriptador/Desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio del agente de servicio de Compute Engine. Si esta cuenta de servicio no aparece en la página de IAM en Google Cloud Console, haz clic en Incluir asignaciones de roles proporcionadas por Google para enumerarla.
    2. Asigna la función de encriptador o desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio del agente de servicio de Dataproc. Puedes usar Google Cloud CLI para asignar el rol:

       gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
       --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Reemplaza lo siguiente:

      KMS_PROJECT_ID: Es el ID del proyecto de Google Cloud que ejecuta Cloud KMS. Este proyecto también puede ser el que ejecuta recursos de Dataproc.

      PROJECT_NUMBER: Es el número del proyecto (no el ID del proyecto) de tu proyecto de Google Cloud que ejecuta los recursos de Dataproc.

    3. Si la función de agente de servicio de Dataproc no se vincula a la cuenta de servicio del agente de servicio de Dataproc, agrega el permiso serviceusage.services.use a la función personalizada vinculada a la cuenta de servicio del agente de servicio de Dataproc. Si la función de agente de servicio de Dataproc está vinculada a la cuenta de servicio del agente de servicio de Dataproc, puedes omitir este paso.

    4. Sigue los pasos para agregar tu clave al bucket.

  4. Cuando envías una carga de trabajo por lotes, debes hacer lo siguiente:

    1. Especifica tu clave en el parámetro Batch kmsKey.
    2. Especifica el nombre del bucket de Cloud Storage en el parámetro Batch stagingBucket.