De forma predeterminada, Google Cloud Serverless para Apache Spark cifra el contenido del cliente en reposo. Serverless para Apache Spark se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.
Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Serverless para Apache Spark. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Cloud KMS también te permite monitorizar el uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y el gestor de las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.
Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceso a tus recursos de Serverless para Apache Spark será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).
Usar CMEK
Sigue los pasos de esta sección para usar CMEK y encriptar los datos que Google Cloud Serverless para Apache Spark escribe en el disco persistente y en el bucket de almacenamiento provisional de Dataproc.
Crea una clave con Cloud Key Management Service (Cloud KMS).
Copia el nombre del recurso.
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Habilita las cuentas de servicio del agente de servicio de Compute Engine, Dataproc y Cloud Storage para que usen tu clave:
- Consulta Proteger recursos con claves de Cloud KMS > Roles obligatorios para asignar el rol Encargado del encriptado y desencriptado de la clave criptográfica 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 Gestión de identidades y accesos de la consola de Google Cloud , haz clic en Incluir asignaciones de roles proporcionadas por Google para que se muestre.
Asigna el rol Encargado del encriptado y desencriptado de la clave criptográfica 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
Haz los cambios siguientes:
KMS_PROJECT_ID
: el ID de tu proyecto Google Cloud que ejecuta Cloud KMS. Este proyecto también puede ser el que ejecute los recursos de Dataproc.PROJECT_NUMBER
: el número del proyecto (no el ID del proyecto) en el que se ejecutan los recursos de Dataproc. Google CloudHabilita la API Cloud KMS en el proyecto que ejecuta recursos de Serverless para Apache Spark.
Si el rol de agente de servicio de Dataproc no está asociado a la cuenta de servicio de agente de servicio de Dataproc, añade el permiso
serviceusage.services.use
al rol personalizado asociado a la cuenta de servicio de agente de servicio de Dataproc. Si el rol Agente de servicio de Dataproc está asociado a la cuenta de servicio Agente de servicio de Dataproc, puedes saltarte este paso.Sigue los pasos para añadir tu llave al contenedor.
Cuando envías una carga de trabajo por lotes:
- Especifica tu clave en el parámetro batch
kmsKey
. - Especifica el nombre de tu segmento de Cloud Storage en el parámetro batch
stagingBucket
.
- Especifica tu clave en el parámetro batch
Cuando creas una sesión interactiva o una plantilla de sesión:
- Especifique su clave en el parámetro de sesión
kmsKey
. - Especifica el nombre de tu segmento de Cloud Storage en el parámetro de sesión
stagingBucket
.
- Especifique su clave en el parámetro de sesión