Par défaut, Cloud Data Fusion chiffre le contenu client au repos. Cloud Data Fusion gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.
Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Cloud Data Fusion. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Cloud KMS vous permet également de suivre l'utilisation des clés, d'afficher les journaux d'audit et de contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.
Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Cloud Data Fusion est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).
Cloud Data Fusion est compatible avec le suivi de l'utilisation des clés Cloud KMS pour la ressource Instance
.
Le chiffrement CMEK vous permet de contrôler 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 les suivantes:
- Journaux et métadonnées de pipeline
- Métadonnées du cluster Dataproc
- Récepteurs de données, actions et sources Cloud Storage, BigQuery, Pub/Sub et Spanner divers
Ressources Cloud Data Fusion
Pour obtenir la liste des plug-ins Cloud Data Fusion compatibles avec le chiffrement CMEK, consultez les plug-ins compatibles.
Cloud Data Fusion est compatible avec CMEK pour les clusters Dataproc. Cloud Data Fusion crée un cluster Dataproc temporaire qui est utilisé dans le pipeline, puis supprimé une fois le pipeline terminé. 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 dans le projet Google Cloud contenant 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 créez l'instance. Une clé d'une région mondiale ou d'un emplacement multirégional n'est pas autorisée au niveau de l'instance, car Cloud Data Fusion est toujours associé à une région spécifique.
Obtenir le nom de la ressource pour 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
Remplacez les éléments suivants :
- PROJECT_ID : projet client qui héberge l'instance Cloud Data Fusion
- REGION : région Google Cloud proche de votre emplacement (par exemple,
us-east1
) - KEY_RING_NAME : nom du trousseau de clés qui regroupe les clés cryptographiques
- KEY_NAME : nom de la clé Cloud KMS
Console
Accédez à la page Gestion des clés.
À côté de votre clé, cliquez sur Plus
.Sélectionnez Copier le nom de la ressource pour copier le nom de la ressource dans le presse-papiers.
Mettre à jour les comptes de service de votre projet pour utiliser la clé
Pour configurer les comptes de service de votre projet pour utiliser votre clé :
Obligatoire : Accordez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) à l'agent de service Cloud Data Fusion (voir Attribuer des rôles à un compte de service pour des ressources spécifiques). Ce compte est au format suivant :service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
L'attribution du rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Cloud Data Fusion permet à Cloud Data Fusion d'utiliser les CMEK pour chiffrer toutes les données client stockées dans des projets locataires.
Obligatoire : Attribuez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Compute Engine (voir Attribuer une clé Cloud KMS à un compte de service Cloud Storage). Ce compte, auquel le rôle Agent de service Compute Engine est attribué par défaut, se présente sous la forme suivante :
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Attribuer le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Compute Engine permet à Cloud Data Fusion d'utiliser les CMEK pour chiffrer les métadonnées de disques persistants écrites par le cluster Dataproc s'exécutant dans votre pipeline.
Obligatoire : Attribuez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Cloud Storage (voir Attribuer une clé Cloud KMS à un agent de service Cloud Storage). 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 Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS au compte de service Cloud Storage permet à Cloud Data Fusion d'utiliser les CMEK pour chiffrer les données écrites dans le bucket de préproduction du cluster Dataproc et toutes les autres ressources Cloud Storage utilisées par votre pipeline.
Obligatoire: Attribuez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS à l'agent de service Google Cloud Dataproc. Cet agent de service se présente sous la forme suivante:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
Facultatif : Si votre pipeline utilise des ressources BigQuery, attribuez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS au compte de service BigQuery (voir la section Accorder une autorisation de chiffrement et de déchiffrement). Ce compte se présente comme suit :
bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com
Facultatif : Si votre pipeline utilise des ressources Pub/Sub, attribuez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS au compte de service Pub/Sub (voir la section Utiliser les clés de chiffrement gérées par le client). Ce compte apparaît au format suivant :
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
Facultatif : Si votre pipeline utilise des ressources Spanner, attribuez le rôle 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
CMEK est disponible dans toutes les éditions de Cloud Data Fusion version 6.5.0 et ultérieure.
API REST
Pour créer une instance avec une clé de chiffrement gérée par le client, définissez les variables d'environnement suivantes :
export PROJECT=PROJECT_ID export LOCATION=REGION export INSTANCE=INSTANCE_ID export DATA_FUSION_API_NAME=datafusion.googleapis.com export KEY=KEY_NAME
Remplacez les éléments suivants :
- PROJECT_ID: projet client qui héberge l'instance Cloud Data Fusion
- REGION: région Google Cloud proche de votre emplacement (par exemple,
us-east1
) - INSTANCE_ID : nom de l'instance Cloud Data Fusion
- KEY_NAME : nom complet de la ressource de la clé CMEK
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"} }'
Console
Accédez à la page Cloud Data Fusion.
Cliquez sur Instances, puis sur Créer une instance.
Dans Options avancées, sélectionnez Utiliser une clé de chiffrement gérée par le client (CMEK).
Dans le champ Select a customer-managed key (Sélectionner une clé gérée par le client), sélectionnez le nom de la ressource de la clé.
Une fois tous les détails de l'instance saisis, cliquez sur Créer. Lorsque l'instance est prête à être utilisée, elle apparaît sur la page Instances.
Vérifier si CMEK est activé sur une instance
Console
Affichez les détails de l'instance:
Dans la console Google Cloud, accédez à la page Cloud Data Fusion.
Cliquez sur Instances, puis sur le nom de l'instance pour accéder à la page Détails de l'instance.
Si le chiffrement CMEK est activé, le champ Clé de chiffrement indique Disponible.
Si le chiffrement CMEK est désactivé, le champ Clé de chiffrement s'affiche comme Non disponible.
Utiliser les CMEK avec les plug-ins compatibles
Lorsque vous définissez le nom de la clé de chiffrement, utilisez le format suivant :
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Le tableau suivant décrit le comportement de la clé dans les plug-ins Cloud Data Fusion compatibles avec les CMEK.
Plug-ins compatibles | Comportement de la touche |
---|---|
Récepteurs Cloud Data Fusion | |
Cloud Storage | Chiffre les données écrites dans un bucket créé par le plug-in. Si le bucket existe déjà, cette valeur est ignorée. |
Cloud Storage multi-fichiers | Chiffre les données écrites dans un bucket créé par le plug-in. |
BigQuery | Chiffre les données écrites dans un bucket, un ensemble de données ou une table créés par le plug-in. |
BigQuery multi-tables | Chiffre les données écrites dans un bucket, un ensemble de données ou une table créés par le plug-in. |
Pub/Sub | Chiffre les données écrites dans un sujet créé par le plug-in. Si le sujet existe déjà, cette valeur est ignorée. |
Spanner | Chiffre les données écrites dans une base de données créée par le plug-in. Si la base de données existe déjà, cette valeur est ignorée. |
Actions Cloud Data Fusion | |
Cloud Storage Create Cloud Storage Copy Cloud Storage Move Cloud Storage Done File Marker |
Chiffre les données écrites dans un bucket créé par le plug-in. Si le bucket existe déjà, cette valeur est ignorée. |
BigQuery Execute | Chiffre les données écrites dans l'ensemble de données ou la table créés par le plug-in pour stocker les résultats de requête. Elle n'est applicable que si vous stockez les résultats de la requête dans une table BigQuery. |
Sources Cloud Data Fusion | |
Source BigQuery | Chiffre les données écrites dans un bucket créé par le plug-in. Si le bucket existe déjà, cette valeur est ignorée. |
Moteur SQL Cloud Data Fusion | |
BigQuery Pushdown Engine | Chiffre les données écrites dans un bucket, un ensemble de données ou une table créés par le plug-in. |
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 des disques persistants et des buckets de préproduction écrits par le cluster Dataproc s'exécutant dans votre pipeline. Vous pouvez utiliser une autre clé en effectuant l'une des opérations suivantes :
- Recommandé : Créez un profil de calcul Dataproc (édition Enterprise uniquement).
- Modifiez un profil de calcul Dataproc existant (édition Developer, Basic ou Enterprise).
Console
Ouvrez l'instance Cloud Data Fusion :
Dans la console Google Cloud, accédez à la page Cloud Data Fusion.
Pour ouvrir l'instance dans Cloud Data Fusion Studio, cliquez sur Instances, puis sur Afficher l'instance.
Cliquez sur Administrateur système > Configuration.
Cliquez sur le menu déroulant Profils de calcul système.
Cliquez sur Créer un profil, puis sélectionnez Dataproc.
Saisissez un Libellé de profil, un Nom de profil et une Description.
Par défaut, Dataproc crée des buckets de préproduction et temporaires chaque fois qu'un cluster éphémère est créé par Cloud Data Fusion. Cloud Data Fusion permet de transmettre le bucket de préproduction Dataproc en tant qu'argument dans le profil de calcul. Pour chiffrer le bucket de préproduction, créez un bucket compatible avec CMEK et transmettez-le en tant qu'argument à Dataproc dans le profil de calcul.
Par défaut, Cloud Data Fusion crée automatiquement un bucket Cloud Storage pour mettre en scène les dépendances utilisées par Dataproc. Si vous préférez utiliser un bucket Cloud Storage qui existe déjà dans votre projet, procédez comme suit:
Dans la section Paramètres généraux, saisissez votre bucket Cloud Storage existant dans le champ Bucket Cloud Storage.
Récupérez l'ID de ressource de votre clé Cloud KMS. Dans la section Paramètres généraux, saisissez votre ID de ressource dans le champ Nom de la clé de chiffrement.
Cliquez sur Create (Créer).
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.
Utiliser les CMEK avec d'autres ressources
La clé CMEK fournie est définie sur la préférence système lors de la création de l'instance Cloud Data Fusion. Il permet de chiffrer les données écrites dans les ressources nouvellement créées par les récepteurs de pipeline tels que Cloud Storage, BigQuery, Pub/Sub ou Spanner.
Cette clé ne s'applique qu'aux ressources nouvellement créées. Si la ressource existe déjà avant l'exécution du pipeline, vous devez appliquer manuellement la clé CMEK à ces ressources existantes.
Pour modifier la clé CMEK, procédez comme suit:
- Utilisez un argument d'exécution.
- Définissez une préférence système Cloud Data Fusion.
Argument d'exécution
- 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.
- Dans le champ Nom, saisissez
gcp.cmek.key.name
. - Dans le champ Valeur, saisissez l'ID de ressource de votre clé.
Cliquez sur Enregistrer.
L'argument d'exécution que vous définissez ici ne s'applique qu'aux exécutions du pipeline actuel.
Préférence
- Dans l'interface utilisateur de Cloud Data Fusion, cliquez sur ADMINISTRATEUR SYSTÈME.
- Cliquez sur l'onglet Configuration.
- Cliquez sur le menu déroulant Préférences système.
- Cliquez sur Modifier les préférences système.
- Dans le champ Clé, saisissez
gcp.cmek.key.name
. - Dans le champ Valeur, saisissez l'ID de ressource de votre clé.
- Cliquez sur Enregistrer et fermer.