Cette page a été traduite par l'API Cloud Translation.
Switch to English

Clés de chiffrement gérées par le client (CMEK)

Lorsque vous utilisez Dataproc, les données de cluster et de tâche sont stockées sur des disques persistants associés aux VM Compute Engine de votre cluster et d'un bucket de préproduction Cloud Storage. Les données de disque persistant et de bucket sont chiffrées à l'aide d'une clé de chiffrement de données (DEK, Data Encryption Key) générée par Google et d'une clé de chiffrement de clé (KEK, Key Encryption Key). La fonctionnalité CMEK vous permet de créer, d'utiliser et de révoquer la clé KEK. Google continue de contrôler la clé de chiffrement de données (DEK). Pour en savoir plus sur les clés de chiffrement de données Google, consultez la page Chiffrement au repos.

Utiliser les clés de chiffrement gérées par le client

Vous pouvez utiliser la fonctionnalité CMEK pour chiffrer les données sur les disques persistants associés aux VM de votre cluster Dataproc et/ou les métadonnées du cluster, ainsi que les résultats des pilotes de tâches écrits dans le bucket de préproduction Dataproc. Suivez les étapes 1 et 2, puis les étapes 3, 4 ou 5 ci-dessous pour utiliser la fonctionnalité CMEK avec les disques persistants de votre cluster, le bucket Cloud Storage ou les deux.

  1. Créez une clé à l'aide du service Cloud Key Management Service (Cloud KMS). Copiez le nom de la ressource, que vous pourrez utiliser lors des étapes suivantes. Le nom de la ressource se construit de la façon suivante :
    projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    
  2. Pour permettre aux comptes de service Compute Engine et Cloud Storage d'utiliser votre clé, procédez comme suit :

    1. Suivez le point 5 de la section Compute Engine → Protéger des ressources avec des clés Cloud KMS → Avant de commencer pour attribuer le rôle Cloud KMS CryptoKey Encrypter/Decrypter (Chiffreur/Déchiffreur de CryptoKey) au compte de service Compute Engine.
    2. Attribuez le rôle CryptoKey Encrypter/Decrypter Cloud KMS à l'agent de service Cloud Storage.
  3. Vous pouvez utiliser l'outil de ligne de commande gcloud ou l'API Dataproc pour définir la clé créée à l'étape 1 sur les disques persistants associés aux VM du cluster Dataproc.

    Commande gcloud

    Transmettez l'ID de ressource Cloud KMS obtenu à l'étape 1 à l'option --gce-pd-kms-key lors de la création du cluster à l'aide de la commande gcloud dataproc clusters create.

    Exemple :

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

    Vous pouvez vérifier les paramètres de clé à partir de l'outil de ligne de commande gcloud.

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

    API REST

    Utilisez ClusterConfig.EncryptionConfig.gcePdKmsKeyName dans le cadre d'une requête cluster.create.

    Vous pouvez vérifier les paramètres de clé à l'aide d'une requête clusters.get. Le fichier JSON renvoyé répertorie le gcePdKmsKeyName :

    ...
    {
    "projectId": "project-id",
    "clusterName": "cluster-name",
    "config": {
       "encryptionConfig": {
      "gcePdKmsKeyName": "projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name"
    }
    },
    

  4. Pour utiliser la fonctionnalité CMEK sur le bucket Cloud Storage utilisé par Dataproc pour lire/écrire les données du cluster et des tâches, créez un bucket avec CMEK. Remarque : utilisez la clé créée à l'étape 1 au moment d'ajouter la clé au bucket. Ensuite, transmettez le nom du bucket à la commande gcloud dataproc clusters create lors de la création du cluster.

    Exemple :

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

    Vous pouvez également transmettre des buckets activés par CMEK à la commande gcloud dataproc jobs submit si votre tâche prend en compte les arguments de bucket (consultez les arguments de bucket ...cmek-bucket... dans l'exemple de soumission de tâche PySpark suivant).

    Exemple :
    gcloud dataproc jobs submit pyspark gs://cmek-bucket/wordcount.py \
        --region=region \
        --cluster=cluster-name \
        -- gs://cmek-bucket/shakespeare.txt gs://cmek-bucket/counts
    

  5. Pour utiliser la fonctionnalité CMEK sur les disques persistants de votre cluster et sur le bucket Cloud Storage utilisé par Dataproc, transmettez les options --gce-pd-kms-key et --bucket à la commande gcloud dataproc clusters create, comme expliqué aux étapes 3 et 4. Vous pouvez créer et utiliser une clé distincte pour les données de disque persistant et les données de bucket.