Usa CMEK con Managed Service for Apache Spark

De forma predeterminada, Managed Service para Apache Spark encripta el contenido del cliente almacenado en reposo. Managed Service para Apache Spark controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina encriptación predeterminada de Google.

Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluido Managed Service para Apache Spark. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite hacer un seguimiento del uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.

Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Managed Service para Apache Spark es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).

Usa CMEK

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

Puedes usar Cloud Key Management Service para crear y administrar llaveros de claves y claves, o usar Autokey de Cloud KMS para la creación automática simplificada de llaveros de claves y claves.

Usa Autokey de Cloud KMS

  1. Habilita Autokey en la carpeta que contiene tu proyecto.
  2. Crea un identificador de clave. Cuando crees el identificador de clave, especifica dataproc.googleapis.com/Batch o dataproc.googleapis.com/Session como --resource-type. Autokey genera una clave y la asigna al identificador de clave.
  3. Otorga permisos a las cuentas de servicio y configura tu carga de trabajo por lotes o de sesión siguiendo los pasos 4 y 5 de la sección Crea y usa claves de forma manual que se muestra a continuación. Cuando envíes tu carga de trabajo, especifica el nombre del recurso del identificador de clave en lugar del nombre del recurso de la clave en el campo kmsKey.

Crea y usa claves de forma manual

Sigue estos pasos para crear claves de Cloud KMS de forma manual y usarlas con Managed Service para Apache Spark.

  1. Crea una clave con el 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, Managed Service para Apache Spark y Cloud Storage Service Agent 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 en la Google Cloud consola, haz clic en Incluir asignaciones de roles proporcionadas 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 servicio de Managed Service para Apache Spark. 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 que Google Cloud ejecuta Cloud KMS. Este proyecto también puede ser el que ejecuta los recursos de Managed Service para Apache Spark.

      PROJECT_NUMBER: Es el número del proyecto (no el ID del proyecto) que ejecuta los recursos de Managed Service para Apache Spark. Google Cloud

    3. Habilita la API de Cloud KMS en el proyecto que ejecuta los recursos de Managed Service para Apache Spark.

    4. Si el rol de agente de servicio de Managed Service para Apache Spark no está adjunto a la cuenta de servicio del agente de servicio de Managed Service para Apache Spark, agrega el permiso serviceusage.services.use al rol personalizado adjunto a la cuenta de servicio del agente de servicio de Managed Service para Apache Spark. Si el rol de agente de servicio de Managed Service para Apache Spark está adjunto a la cuenta de servicio del agente de servicio de Managed Service para Apache Spark, puedes omitir este paso.

    5. Sigue los pasos para agregar tu clave en el bucket.

  4. Cuando envíes una carga de trabajo por lotes, haz lo siguiente:

    1. Especifica tu clave en el parámetro kmsKey del lote.
    2. Especifica el nombre de tu bucket de Cloud Storage en el parámetro stagingBucket del lote.
  5. Cuando crees una sesión interactiva o una plantilla de sesión, haz lo siguiente:

    1. Especifica tu clave en el parámetro kmsKey de la sesión.
    2. Especifica el nombre de tu bucket de Cloud Storage en el parámetro de la sesión stagingBucket.