Usa CMEK con Managed Service for Apache Spark

De forma predeterminada, Managed Service para Apache Spark encripta el contenido del cliente 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 y 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 la clave automática de Cloud KMS para simplificar la creación automática de llaveros de claves y claves.

Usa Autokey de Cloud KMS

  1. Habilita Autokey en la carpeta que contiene tu proyecto.
  2. Crea un controlador de claves. Cuando crees el controlador de claves, especifica dataproc.googleapis.com/Batch o dataproc.googleapis.com/Session como --resource-type. Autokey genera una clave y la asigna al controlador de claves.
  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 aparece a continuación. Cuando envíes tu carga de trabajo, especifica el nombre del recurso del controlador de claves 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 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 el agente de servicio de Cloud Storage para que usen tu clave:

    1. Consulta Protege recursos con claves de Cloud KMS > Roles obligatorios para asignar el rol 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 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 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 ejecute los recursos de Managed Service para Apache Spark.

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

    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á conectado 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ías una carga de trabajo por lotes, ocurre lo siguiente:

    1. Especifica tu clave en el parámetro por lotes kmsKey.
    2. Especifica el nombre de tu bucket de Cloud Storage en el parámetro stagingBucket del lote.
  5. Cuando creas una sesión interactiva o un perfil de entorno de ejecución (plantilla de sesión), configura la clave de encriptación y el bucket de etapa de pruebas:

    1. Especifica tu clave. En la página Crea un perfil de entorno de ejecución de la consola deGoogle Cloud , en Configuración adicional, edita Red y seguridad, selecciona Clave de Cloud KMS en Encriptación y selecciona tu clave. Como alternativa, especifica tu clave en el parámetro kmsKey de la sesión o de la plantilla de sesión.

    2. Especifica el nombre de tu bucket de Cloud Storage. En la página Crear un perfil de entorno de ejecución de la consola de Google Cloud , en Configuración adicional, edita Configuración del entorno de ejecución y selecciona tu bucket en el campo Bucket de etapa de pruebas. Como alternativa, especifica el bucket en el parámetro stagingBucket de la sesión o de la plantilla de sesión.