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

Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google. Si vous avez des exigences réglementaires ou de conformité spécifiques liées aux clés qui protègent vos données, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) pour les dépôts Dataform.

Ce guide explique comment utiliser CMEK pour Dataform et explique comment activer le chiffrement CMEK des dépôts Dataform.

Pour en savoir plus sur les CMEK en général, y compris quand et pourquoi les activer, consultez la documentation CMEK.

Chiffrement CMEK des données du dépôt

Lorsque vous appliquez le chiffrement CMEK à un dépôt Dataform, toutes les données client gérées par Dataform dans ce dépôt sont chiffrées au repos à l'aide de la clé de protection CMEK définie pour le dépôt. Ces données incluent les éléments suivants:

  • Contenu du dépôt Dataform et de ses espaces de travail dans le dépôt Git
  • Requêtes SQL compilées et erreurs de compilation
  • Requêtes SQL stockées pour les actions de workflow
  • Détails des erreurs liées aux actions de workflow exécutées

Dataform utilise des clés de protection CMEK dans les scénarios suivants:

  • Lors de chaque opération nécessitant le déchiffrement des données client stockées au repos. Ces opérations incluent, sans s'y limiter, les opérations suivantes :
  • Lors de chaque opération nécessitant de stocker des données client au repos. Ces opérations incluent, sans s'y limiter, les opérations suivantes :

Dataform gère le chiffrement des données client associées uniquement aux ressources Dataform. Dataform ne gère pas le chiffrement des données client créées dans BigQuery via l'exécution de workflows Dataform. Pour chiffrer les données créées et stockées dans BigQuery, configurez CMEK pour BigQuery.

Clés compatibles

Dataform accepte les types de clés CMEK suivants:

La disponibilité des clés varie selon le type de clé et la région. Pour en savoir plus sur la disponibilité géographique des clés CMEK, consultez la page Emplacements Cloud KMS.

Restrictions

Dataform est compatible avec les CMEK avec les restrictions suivantes:

  • Vous ne pouvez pas appliquer de clé de protection CMEK à un dépôt après sa création. Vous ne pouvez appliquer le chiffrement CMEK que lors de la création du dépôt.
  • Vous ne pouvez pas supprimer une clé de protection CMEK d'un dépôt.
  • Vous ne pouvez pas modifier la clé de protection CMEK pour un dépôt.
  • Les règles d'administration CMEK ne sont pas disponibles.
  • L'utilisation de clés Cloud HSM est soumise à la disponibilité. Pour en savoir plus sur la disponibilité des clés entre les emplacements, consultez la page Emplacements Cloud KMS.

Quotas Cloud KMS et Dataform

Vous pouvez utiliser des clés Cloud HSM avec Dataform. Lorsque vous utilisez une clé CMEK dans Dataform, vos projets peuvent consommer les quotas de requêtes cryptographiques Cloud KMS. Par exemple, les dépôts Dataform chiffrés par CMEK peuvent consommer ces quotas pour chaque modification du contenu du dépôt. Les opérations de chiffrement et de déchiffrement à l'aide de clés CMEK n'affectent les quotas Cloud KMS que si vous utilisez des clés matérielles (Cloud HSM) ou externes (Cloud EKM). Pour en savoir plus, consultez la page Quotas Cloud KMS.

Gérer les clés

Utiliser Cloud KMS pour toutes les opérations de gestion des clés Dataform ne peut pas détecter les modifications de clé ni agir en conséquence tant qu'elles ne sont pas propagées par Cloud KMS. La propagation de certaines opérations, telles que la désactivation ou la destruction d'une clé, peut prendre jusqu'à trois heures. Les modifications apportées aux autorisations se propagent généralement beaucoup plus rapidement.

Une fois le dépôt créé, Dataform appelle Cloud KMS pour s'assurer que la clé est toujours valide lors de chaque opération sur les données de dépôt chiffrées.

Si Dataform détecte que votre clé Cloud KMS a été désactivée ou détruite, toutes les données stockées dans le dépôt correspondant deviennent inaccessibles.

Si les appels de Dataform à Cloud KMS détectent qu'une clé précédemment désactivée a été réactivée, Dataform restaure automatiquement l'accès.

Traitement de l'état d'indisponibilité d'une clé

Dans de rares cas, par exemple lorsque Cloud KMS n'est pas disponible, Dataform peut ne pas être en mesure de récupérer l'état de votre clé à partir de Cloud KMS.

Si votre dépôt Dataform est protégé par une clé activée et que Dataform ne peut pas communiquer avec Cloud KMS, les données chiffrées du dépôt deviennent inaccessibles.

Les données de dépôt chiffrées restent inaccessibles jusqu'à ce que Dataform puisse se reconnecter avec Cloud KMS et que Cloud KMS réponde que la clé est active.

À l'inverse, si votre dépôt Dataform est protégé par une clé désactivée au moment où Dataform ne peut plus communiquer avec Cloud KMS, les données chiffrées du dépôt restent inaccessibles jusqu'à ce qu'il puisse se reconnecter à Cloud KMS et que vous ayez réactivé votre clé.

Journalisation

Vous pouvez auditer les requêtes que Dataform envoie en votre nom à Cloud KMS dans Cloud Logging, si vous avez activé la journalisation d'audit pour l'API Cloud KMS dans votre projet. Ces entrées de journal Cloud KMS sont visibles dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux.

Avant de commencer

  • Déterminez si vous allez exécuter Dataform et Cloud KMS dans des projets différents ou dans le même projet. Nous vous recommandons d'utiliser des projets distincts pour mieux contrôler les autorisations. Pour en savoir plus sur les ID et numéros de projet Google Cloud, consultez la section Identifier des projets.

  • Pour le projet Google Cloud qui exécute Cloud KMS, procédez comme suit :

    1. Activez l'API Cloud Key Management Service.
    2. Créez un trousseau de clés et une clé, comme décrit dans les sections concernant la création de trousseaux et de clés. Créez le trousseau de clés à un emplacement correspondant à celui de votre dépôt Dataform :
      • Les dépôts doivent utiliser des clés régionales correspondantes. Par exemple, un dépôt dans la région asia-northeast3 doit être protégé par une clé provenant d'un trousseau situé dans la région asia-northeast3.
      • La région global ne peut pas être utilisée avec Dataform.
      Pour en savoir plus sur les emplacements compatibles avec Dataform et Cloud KMS, consultez la page Emplacements Cloud.

Activer les CMEK

Dataform peut accéder à la clé en votre nom après avoir attribué le rôle Cloud KMS Chiffreur/Déchiffreur de clés cryptographiques (roles/cloudkms.cryptoKeyEncrypterDecrypter) au compte de service Dataform par défaut.

Votre ID de compte de service Dataform par défaut est au format suivant:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Pour attribuer le rôle Chiffreur/Déchiffreur de CryptoKeys au compte de service Dataform par défaut, procédez comme suit:

Console

  1. Ouvrez la page Gestion des clés dans la console Google Cloud.

    Ouvrir la page Gestion des clés

  2. Cliquez sur le nom du trousseau de clés contenant la clé.

  3. Cochez la case correspondant à la clé de chiffrement à laquelle vous souhaitez ajouter le rôle. L'onglet Autorisations s'ouvre.

  4. Cliquez sur Ajouter un membre.

  5. Saisissez l'adresse e-mail du compte de service

    • Si le compte de service figure déjà sur la liste des membres, il possède des rôles. Cliquez sur la liste déroulante du rôle actuel pour le compte de service.
  6. Cliquez sur la liste déroulante Sélectionnez un rôle, sélectionnez Cloud KMS, puis cliquez sur le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.

  7. Cliquez sur Enregistrer pour appliquer le rôle au compte de service.

gcloud

Pour attribuer le rôle, vous pouvez utiliser Google Cloud CLI comme suit :

gcloud kms keys add-iam-policy-binding \
    --project=KMS_PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --location=KMS_KEY_LOCATION \
    --keyring=KMS_KEY_RING \
    KMS_KEY

Remplacez les éléments suivants :

  • KMS_PROJECT_ID : ID de votre projet Google Cloud exécutant Cloud KMS
  • SERVICE_ACCOUNT: adresse e-mail de votre compte de service Dataform par défaut
  • KMS_KEY_LOCATION : nom de l'emplacement de votre clé Cloud KMS
  • KMS_KEY_RING : nom du trousseau de clés contenant votre clé Cloud KMS
  • KMS_KEY : nom de votre clé Cloud KMS

Appliquer une clé CMEK à un dépôt

Vous pouvez appliquer la protection CMEK à un dépôt Dataform lors de la création du dépôt.

Pour appliquer le chiffrement CMEK à un dépôt Dataform, spécifiez une clé Cloud KMS lorsque vous créez le dépôt. Pour obtenir des instructions, consultez Créer un dépôt.

Vous ne pouvez pas modifier le mécanisme de chiffrement d'un dépôt Dataform une fois le dépôt créé.

Pour en savoir plus, consultez la section Restrictions.

Étapes suivantes