Utiliser des clés de chiffrement gérées par le client (CMEK)

Cette page explique comment utiliser une clé de chiffrement Cloud Key Management Service (Cloud KMS) avec Cloud Data Fusion.

Une clé de chiffrement gérée par le client (CMEK, Customer-Managed Encryption Key) permet de chiffrer les données au repos avec une clé contrôlable via Cloud KMS. CMEK fournit un contrôle utilisateur sur les données écrites dans les ressources internes de Google dans les projets locataires et les données écrites par les pipelines Cloud Data Fusion, y compris:

  • Journaux et métadonnées du pipeline
  • Les métadonnées du cluster Dataproc
  • Récepteurs de données Cloud Storage, BigQuery, Pub/Sub et Cloud Spanner

Ressources Cloud Data Fusion

Cloud Data Fusion est compatible avec CMEK pour les plug-ins Cloud Data Fusion suivants:

  • Récepteurs Cloud Data Fusion :

    • Cloud Storage
    • Cloud Storage multi-fichiers
    • BigQuery
    • BigQuery multi-tables
    • Pub/Sub
    • Spanner
  • Actions Cloud Data Fusion :

    • Cloud Storage créer
    • BigQuery exécuter

Cloud Data Fusion est compatible avec CMEK pour les clusters Dataproc. Cloud Data Fusion crée un cluster Dataproc temporaire à utiliser dans le pipeline, puis le supprime à la fin du pipeline. La fonctionnalité CMEK protège les métadonnées de cluster écrites dans les éléments suivants:

  • Disques persistants associés aux VM de cluster
  • Résultats des pilote de tâches et autres métadonnées écrites dans le bucket de préproduction Dataproc, créé automatiquement ou par l'utilisateur.

Configurer les clés de chiffrement gérées par le client (CMEK)

Créer une clé Cloud KMS

Créez une clé Cloud KMS

Vous pouvez créer la clé dans le même projet Google Cloud que l'instance Cloud Data Fusion ou dans un projet utilisateur distinct. L'emplacement du trousseau de clés Cloud KMS doit correspondre à la région dans laquelle vous souhaitez créer l'instance. Une clé d'une région mondiale ou d'un emplacement multirégional n'est pas autorisée.

Obtenir le nom de ressource de la clé

API REST

Obtenez le nom de ressource de la clé que vous avez créée à l'aide de la commande suivante:

projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name

Console

  1. Accédez à la page Clés de chiffrement.

    Accéder à la page "Clés cryptographiques"

  2. À côté de votre clé, cliquez sur Plus .

  3. Sélectionnez Copier le nom de la ressource pour copier le nom complet de la ressource dans le presse-papiers.

Mettez à jour les comptes de service de votre projet pour qu'ils utilisent la clé

Pour configurer les comptes de service de votre projet afin d'utiliser votre clé:

  1. Obligatoire: accordez le rôle de chiffreur/déchiffreur de clés cryptographiques Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) au service Cloud Data Fusion. (consultez Attribuer des rôles à un compte de service pour des ressources spécifiques). Le compte est au format suivant:

    service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com

    L'attribution du rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS à l'agent de service Cloud Data Fusion permet à Cloud Data Fusion d'utiliser CMEK pour chiffrer les données client stockées dans les projets locataires.

  2. Obligatoire: accordez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS à l'agent de service Compute Engine (consultez Attribuer une clé Cloud KMS à un compte de service Cloud Storage Ce compte, qui reçoit par défaut le rôle d'agent de service Compute Engine, se présente sous la forme suivante:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    L'attribution du rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS à l'agent de service Compute Engine permet à Cloud Data Fusion d'utiliser CMEK pour chiffrer les métadonnées de disques persistants (PD) écrits par Dataproc cluster s'exécutant dans votre pipeline.

  3. Obligatoire: Accordez le rôle de chiffreur/déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Cloud Storage (consultez la section Attribuer une clé Cloud KMS à un cloud) Agent de service de stockage Cet agent de service se présente sous la forme suivante:

    service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com

    L'attribution du rôle de chiffreur/déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Cloud Storage permet à Cloud Data Fusion d'utiliser CMEK pour chiffrer les données écrites dans le bucket de préproduction du cluster Dataproc et toute autre ressource Cloud Storage utilisée par votre Pipeline.

  4. Facultatif: Si votre pipeline utilise des ressources BigQuery, attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service BigQuery. (voir Accorder l'autorisation de chiffrement et de déchiffrement). Ce compte se présente comme suit :

    bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com

  5. Facultatif: Si votre pipeline utilise des ressources Pub/Sub, attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au Pub. /Sub service account (Consultez la page Utiliser des clés de chiffrement gérées par le client). Ce compte est au format suivant:

    service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com

  6. Facultative Si votre pipeline utilise: Spanner, accordez les {Rôle de chiffreur/déchiffreur de clés cryptographiques Cloud KMS au compte de service Spanner. Ce compte se présente comme suit :

    service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com

Créer une instance Cloud Data Fusion avec CMEK

Pour créer une instance avec une clé de chiffrement gérée par le client, exportez les variables suivantes ou remplacez directement ces valeurs dans les commandes ci-dessous.

export PROJECT=PROJECT_ID // the user project that will host the Data Fusion instance
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
export KEY=CMEK_KEY // the full resource name of the CMEK key, which is of the form projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name

Exécutez la commande suivante pour créer une instance Cloud Data Fusion:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'

Utiliser les CMEK avec les métadonnées du cluster Dataproc

Les profils de calcul précréés utilisent la clé CMEK fournie lors de la création de l'instance pour chiffrer les métadonnées du disque persistant et du bucket de préproduction qui sont écrites par le cluster Dataproc exécuté dans le cluster. votre pipeline. Vous pouvez la modifier pour utiliser une autre clé en effectuant l'une des opérations suivantes:

  • Recommandé: créez un profil de calcul Dataproc (édition Enterprise uniquement).
  • Modifier un profil de calcul Dataproc existant (édition Developer, Basic ou Enterprise).

Console

  1. Accédez à la page Instances de Cloud Data Fusion.

    Accéder à la page "Instances"

  2. Dans la colonne Actions de l'instance, cliquez sur Afficher l'instance.

  3. Dans l'interface utilisateur Web de Cloud Data Fusion, cliquez sur ADMINISTRATEUR SYSTÈME.

  4. Cliquez sur l'onglet Configuration.

  5. Cliquez sur le menu déroulant Profils de calcul système.

  6. Cliquez sur Créer un profil.

  7. Sélectionnez Cloud Dataproc.

  8. Saisissez un Libellé de profil, un Nom de profil et une Description.

  9. Par défaut, Cloud Data Fusion crée automatiquement un bucket Cloud Storage à utiliser comme bucket de préproduction Dataproc. Si vous préférez utiliser un bucket Cloud Storage qui existe déjà dans votre projet, procédez comme suit:

    1. Dans la section Paramètres généraux, saisissez le bucket Cloud Storage existant dans le champ Bucket Cloud Storage.

    2. Ajoutez votre clé Cloud KMS à votre bucket Cloud Storage.

  10. Obtenez l'ID de ressource de votre clé Cloud KMS. Dans la section Paramètres généraux, saisissez l'ID de votre ressource dans le champ Nom de la clé de chiffrement.

  11. Cliquez sur Create (Créer).

  12. Si plusieurs profils sont répertoriés dans la section Profils de calcul système de l'onglet Configuration, définissez le nouveau profil Dataproc comme profil par défaut. Pour cela, maintenez le curseur sur le champ du nom du profil et cliquez sur l'étoile qui s'affiche.

    Sélectionnez le profil par défaut.

Utiliser les CMEK avec d'autres ressources

La clé CMEK fournie est définie sur les préférences système lors de la création de l'instance Cloud Data Fusion. Il permet de chiffrer les données écrites sur les ressources nouvellement créées par les récepteurs du pipeline tels que Cloud Storage, BigQuery, Pub/Sub ou les récepteurs Spanner.

Cette clé ne s'applique qu'aux nouvelles ressources. Si la ressource existe déjà avant l'exécution du pipeline, vous devez appliquer manuellement la clé CMEK à ces ressources.

L'emplacement de la ressource doit être identique à celui de la région hébergeant la clé CMEK. Une ressource multirégionale ou régionale n'est pas autorisée avec CMEK. Vous pouvez modifier la clé CMEK de l'une des manières suivantes:

  • Utilisez un argument d'exécution.
  • Définissez une préférence système Cloud Data Fusion.

Argument d'exécution

  1. Sur la page Pipeline Studio de Cloud Data Fusion, cliquez sur la flèche de menu déroulant située à droite du bouton Exécuter.
  2. Dans le champ Nom, saisissez gcp.cmek.key.name.
  3. Dans le champ Valeur, saisissez l'ID de ressource de votre clé.
    Sélectionnez l'édition Data Fusion.
  4. Cliquez sur Enregistrer.

    L'argument d'exécution que vous définissez ici s'applique uniquement aux exécutions du pipeline actuel.

Préférence

  1. Dans l'interface utilisateur de Cloud Data Fusion, cliquez sur ADMINISTRATEUR SYSTÈME.
  2. Cliquez sur l'onglet Configuration.
  3. Cliquez sur le menu déroulant Préférences système.
  4. Cliquez sur Modifier les préférences système.
  5. Dans le champ Clé, saisissez gcp.cmek.key.name.
  6. Dans le champ Valeur, saisissez l'ID de ressource de votre clé.
    Sélectionnez l'édition Data Fusion.
  7. Cliquez sur Enregistrer et fermer.