Usa CMEK con Dataproc Serverless

Cuando usas Dataproc sin servidores, los datos se almacenan en discos de 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) y una clave de encriptación de claves (KEK) generadas por Google. 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 retiene el control sobre 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 preparación de Dataproc.

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

  2. Copia el nombre del recurso.

    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 de 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 de la consola de Google Cloud, haz clic en Incluir asignaciones de roles proporcionados por Google para que aparezca.
    2. Asigna el rol de encriptador/desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio del agente de servicios de Dataproc. Puedes usar Google Cloud CLI para asignar la función:

       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 de tu proyecto de Google Cloud que ejecuta Cloud KMS. Este proyecto también puede ser el que ejecuta los recursos de Dataproc.

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

    3. Habilita la API de Cloud KMS en el proyecto que ejecuta recursos sin servidores de Dataproc.

    4. Si el rol de agente de servicio de Dataproc no está conectado a la cuenta de servicio del agente de servicio de Dataproc, agrega el permiso serviceusage.services.use al rol personalizado conectado a la cuenta de servicio del agente de servicio de Dataproc. Si el rol de agente de servicio de Dataproc está asociado a la cuenta de servicio del agente de servicio de Dataproc, puedes omitir este paso.

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

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

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