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 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 preparación de Dataproc.
Crea una clave con Cloud Key Management Service (Cloud KMS).
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
Habilita las cuentas de servicio de Compute Engine, Dataproc y el agente de servicio de Cloud Storage para que usen tu clave:
- 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 proporcionadas por Google para que aparezca.
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.Habilita la API de Cloud KMS en el proyecto que ejecuta recursos sin servidores de Dataproc.
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.Sigue los pasos para agregar tu clave al bucket.
Cuando envías una carga de trabajo por lotes, sucede lo siguiente:
- Especifica tu clave en el parámetro
Batch
kmsKey. - Especifica el nombre de tu bucket de Cloud Storage en el parámetro
Batch
stagingBucket.
- Especifica tu clave en el parámetro