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

Cette page explique comment utiliser les clés de chiffrement gérées par le client (CMEK) pour protéger les services Dataproc Metastore. CMEK assure le chiffrement des données au repos à l'aide d'une clé que vous pouvez contrôler via Cloud Key Management Service. Vous pouvez stocker les clés en tant que clés logicielles, dans un cluster HSM ou en externe.

Avant de commencer

Si vous souhaitez que votre service Dataproc Metastore s'exécute à l'intérieur d'un périmètre VPC Service Controls, vous devez ajouter l'API Cloud Key Management Service (Cloud KMS) au périmètre.

Configurer la compatibilité CMEK avec Dataproc Metastore

Afin de configurer la compatibilité CMEK pour Dataproc Metastore, vous devez d'abord accorder les permissions de clés Cloud KMS aux comptes de service Dataproc Metastore et Cloud Storage. Vous pouvez ensuite créer un service Dataproc Metastore qui utilise une clé CMEK.

Accorder des autorisations de clé Cloud KMS

Utilisez les commandes suivantes pour accorder des autorisations de clé Cloud KMS pour Dataproc Metastore:

gcloud

  1. Créez une clé CMEK dans Cloud KMS (si ce n'est pas déjà fait). La commande suivante montre comment créer une clé logicielle:

    gcloud config set project PROJECT_ID
    gcloud kms keyrings create KEY_RING \
      --project KEY_PROJECT \
      --location=LOCATION
    gcloud kms keys create KEY_NAME \
      --project KEY_PROJECT \
      --location=LOCATION \
      --keyring=KEY_RING \
      --purpose=encryption
    

    De même, vous pouvez créer une clé HSM ou créer une clé EKM.

  2. Accordez les autorisations au compte de service de l'agent de service Dataproc Metastore:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
      --location LOCATION \
      --keyring KEY_RING \
      --member=serviceAccount:$(gcloud beta services identity create \
      --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
      --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  3. Accordez des autorisations au compte de service Cloud Storage.

    gsutil kms authorize -k projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

Créer un service Dataproc Metastore avec une clé CMEK

Procédez comme suit pour configurer le chiffrement CMEK lors de la création du service:

Console

  1. Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :

    Accéder à Dataproc Metastore

  2. En haut de la page Dataproc Metastore, cliquez sur Créer.

    La page Créer un service s'ouvre.

  3. Configurez votre service selon vos besoins.

  4. Sous Chiffrement, cliquez sur Utiliser une clé de chiffrement gérée par le client (CMEK).

  5. Sélectionnez la clé gérée par le client.

  6. Cliquez sur Envoyer.

Vérifiez la configuration du chiffrement du service:

  1. Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :

    Accéder à Google Cloud Console

  2. Sur la page Dataproc Metastore, cliquez sur le nom du service que vous souhaitez afficher.

    La page Détails du service correspondant à ce service s'ouvre.

  3. Dans l'onglet Configuration, vérifiez que les détails indiquent que le chiffrement CMEK est activé.

gcloud

  1. Exécutez la commande gcloud metastore services create pour créer un service avec chiffrement CMEK:

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    Remplacez les éléments suivants :

    • SERVICE : nom du nouveau service.
    • KMS_KEY: fait référence à l'ID de ressource de la clé.
  2. Vérifiez que la création a réussi.

Données Dataproc Metastore protégées par des clés de chiffrement fournies par Google

La base de données Cloud Monitoring n'est pas compatible avec le chiffrement CMEK. À la place, Google Cloud utilise des clés de chiffrement Google pour protéger les noms et les configurations de service de vos services Dataproc Metastore.

Importer des données dans un service compatible avec les CMEK et en exporter

Si vous souhaitez que vos données restent chiffrées avec une clé gérée par le client lors d'une importation, vous devez définir le chiffrement CMEK sur le bucket Cloud Storage avant d'importer des données à partir de ce bucket.

Vous pouvez importer des données à partir d'un bucket Cloud Storage non protégé par CMEK. Après l'importation, les données stockées dans Dataproc Metastore sont protégées en fonction des paramètres CMEK du service de destination.

Lors de l'exportation, le vidage de la base de données exportée est protégé en fonction des paramètres CMEK du bucket de stockage de destination.

Mises en garde concernant CMEK pour Dataproc Metastore

  • La désactivation ou la suppression du chiffrement CMEK pour un service compatible avec les CMEK rend ce service inutilisable irrécupérable.

    • Les données sont définitivement perdues.
  • Vous ne pouvez pas activer les clés de chiffrement gérées par le client sur un service existant.

  • Vous ne pouvez pas alterner la clé utilisée par un service compatible CMEK.

  • Un service compatible avec les CMEK n'est pas compatible avec la synchronisation de Data Catalog. La mise à jour d'un service compatible avec CMEK pour activer la synchronisation de Data Catalog échoue. Vous ne pouvez pas non plus créer de service avec les deux fonctionnalités activées.

  • Vous ne pouvez pas utiliser de clés de chiffrement gérées par le client pour chiffrer les données utilisateur en transit, telles que les requêtes utilisateur et les réponses à ces requêtes.

  • Lorsque vous utilisez une clé Cloud EKM, Google n'a aucun contrôle sur la disponibilité de votre clé gérée en externe. Si la clé devient indisponible pendant la période de création du service Dataproc Metastore, la création du service échoue. Une fois le service Dataproc Metastore créé, si la clé devient indisponible, le service devient indisponible jusqu'à ce que la clé le soit. Pour en savoir plus sur l'utilisation de clés externes, consultez la section Considérations relatives à Cloud EKM.

Étapes suivantes