Claves de encriptación administradas por el cliente (CMEK)

Cuando usas Cloud Dataproc, los datos de los clústeres y de los trabajos se almacenan en discos persistentes (PD) asociados con las VM de Compute Engine en tu clúster y en un depósito de Cloud Storage. Estos datos en PD y en el depósito se encriptan con una clave de encriptación de datos (DEK) generada por Google y una clave de encriptación de claves (KEK). La característica CMEK te permite crear, usar y revocar la clave de encriptación de claves (KEK). Google aún controla 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.

Usa CMEK

Puedes usar CMEK para encriptar datos en los PD asociados con las VM en tu clúster de Cloud Dataproc o los metadatos de clústeres y el resultado del controlador de trabajo escrito en el depósito de Cloud Storage por Cloud Dataproc (ClusterConfig.configBucket y Accede al resultado del controlador de trabajo→pestaña CLOUD STORAGE). Sigue los pasos 1 y 2, luego sigue los pasos 3, 4 o 5, a continuación, para usar CMEK con los PD del clúster, el depósito de Cloud Storage o ambos, respectivamente.

  1. Crea una clave con Cloud Key Management Service (Cloud KMS). Copia el nombre del recurso, que puedes usar en los pasos siguientes. El nombre del recurso se construye de la siguiente manera:
    projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    
  2. A fin de habilitar las cuentas de servicio de Compute Engine y Cloud Storage para que usen tu clave, sigue estos pasos:
    1. Sigue el elemento n.º 5 en Compute Engine→Protege los recursos con las claves de Cloud KMS→Antes de comenzar para asignar la función CryptoKey Encrypter/Decrypter de Cloud KMS a la cuenta de servicio de Compute Engine.
    2. Asigna la función CryptoKey Encrypter/Decrypter de Cloud KMS a la cuenta de servicio de Cloud Storage.
  3. Puedes usar la herramienta de línea de comandos de gcloud o la API de Cloud Dataproc para establecer la clave que creaste en el Paso 1 en los PD asociados con las VM en el clúster de Cloud Dataproc.

    Comando de gcloud

    Pasa el ID del recurso de Cloud KMS que obtuviste en el Paso 1 a la marca --gce-pd-kms-key cuando crees el clúster con el comando gcloud dataproc clusters create.

    Ejemplo:

    gcloud dataproc clusters create my-cluster-name \
        --gce-pd-kms-key='projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name' \
        other args ...
    

    Puedes verificar la configuración de la clave desde la herramienta de línea de comandos de gcloud, como se muestra a continuación.

    gcloud dataproc clusters describe cluster-name
    
    ...
    configBucket: dataproc- ...
    encryptionConfig:
    gcePdKmsKeyName: projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    ...
    

    API de REST

    Usa ClusterConfig.EncryptionConfig.gcePdKmsKeyName como parte de una solicitud cluster.create.

    Puedes verificar la configuración de la clave mediante una solicitud clusters.get.El archivo JSON que se muestra contiene listas de gcePdKmsKeyName:

    ...
    {
    "projectId": "project-id",
    "clusterName": "cluster-name",
    "config": {
       "encryptionConfig": {
      "gcePdKmsKeyName": "projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name"
    }
    },
    
  4. Para usar CMEK en el depósito de Cloud Storage que usa Cloud Dataproc a fin de leer y escribir datos de trabajos y de clústeres, crea un depósito con CMEK. Nota: Usa la clave que creaste en el Paso 1 cuando agregues la clave en el depósito. Luego, pasa el nombre del depósito al comando gcloud dataproc clusters create cuando crees el clúster.

    Ejemplo:

    gcloud dataproc clusters create my-cluster \
        --bucket name-of-CMEK-bucket \
        other args ...
    

    También puedes pasar un depósito habilitado por CMEK al comando gcloud dataproc jobs submit si tu trabajo toma argumentos de depósitos (consulta los argumentos ...cmek-bucket... de los depósitos en el siguiente ejemplo de envío de trabajos de PySpark).

    Ejemplo:
    gcloud dataproc jobs submit pyspark gs://cmek-bucket/wordcount.py \
        --cluster clustername \
        -- gs://cmek-bucket/shakespeare.txt gs://cmek-bucket/counts
    
  5. Para usar CMEK en los PD de tu clúster y el depósito de Cloud Storage que usa Cloud Dataproc, pasa las marcas --gce-pd-kms-key y --bucket al comando gcloud dataproc clusters create como se explica en los Pasos 3 y 4. Puedes crear y usar una clave diferente para los datos de PD y los datos de depósitos.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Dataproc
¿Necesitas ayuda? Visita nuestra página de asistencia.