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 conserva 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 a fin de 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 del agente de servicio de Compute Engine, Dataproc y Cloud Storage para usar tu clave:

    1. Consulta Protege recursos mediante claves de Cloud KMS > Funciones obligatorias para asignar la función de Encriptador o 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 la consola de Google Cloud, haz clic en Incluir otorgamientos de roles proporcionados por Google para mostrarla.
    2. Asigna la función 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 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 ejecute 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 los recursos de Dataproc.

    3. Habilitar la API de Cloud KMS en el proyecto que ejecuta los recursos de Dataproc Serverless

    4. Si la función de agente de servicios de Dataproc no está vinculada a la cuenta de servicio de agente de servicios de Dataproc, agrega el permiso serviceusage.services.use al rol personalizado adjunto 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.

    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.