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 décrit l'utilisation de 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 sur les 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 l'ensemble de clés de protection CMEK défini pour le dépôt. Ces données incluent les éléments suivants:

  • Contenu du dépôt Git du dépôt Dataform et de ses espaces de travail
  • Requêtes SQL compilées et erreurs de compilation
  • Requêtes SQL stockées pour les actions de workflow
  • Détails de l'erreur des 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 accepte les CMEK avec les restrictions suivantes:

  • Vous ne pouvez pas appliquer de clé de protection CMEK à un dépôt une fois celui-ci créé. Vous ne pouvez appliquer le chiffrement CMEK qu'à 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 d'un dépôt.
  • Les règles d'administration CMEK ne sont pas disponibles.
  • L'utilisation de clés Cloud HSM est soumise à 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 CMEK dans Dataform, vos projets peuvent utiliser les quotas de requêtes de chiffrement Cloud KMS. Par exemple, les dépôts Dataform chiffrés par CMEK peuvent utiliser ces quotas pour chaque modification apportée au 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

Utilisez Cloud KMS pour toutes les opérations de gestion des clés. Dataform ne peut pas détecter les modifications de clés ni prendre de mesures en conséquence tant qu'elles n'ont pas été propagées par Cloud KMS. Certaines opérations, telles que la désactivation ou la destruction d'une clé, peuvent prendre jusqu'à trois heures pour se propager. 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 des 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 pendant les périodes où Cloud KMS est indisponible, 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 au moment où Dataform ne peut pas communiquer avec Cloud KMS, les données du dépôt chiffrées deviennent inaccessibles.

Les données du dépôt chiffrées restent inaccessibles jusqu'à ce que Dataform puisse se reconnecter à 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 pas communiquer avec Cloud KMS, les données du dépôt chiffrées restent inaccessibles jusqu'à ce qu'elles puissent se reconnecter à Cloud KMS et que vous ayez réactivé votre clé.

Journalisation

Si vous avez activé la journalisation d'audit pour l'API Cloud KMS dans votre projet, vous pouvez auditer les requêtes que Dataform envoie à Cloud KMS en votre nom dans Cloud Logging. 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 dans la même zone que votre dépôt Dataform :
      • Les dépôts doivent utiliser des clés régionales correspondantes. Par exemple, un dépôt situé dans la région asia-northeast3 doit être protégé par une clé provenant d'un trousseau de clés 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 une fois que vous avez attribué le rôle Chiffreur/Déchiffreur de CryptoKeys (roles/cloudkms.cryptoKeyEncrypterDecrypter) Cloud KMS au compte de service Dataform par défaut.

Le format de votre ID de compte de service Dataform par défaut est le 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 CMEK à un dépôt

Vous pouvez appliquer une 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 savoir comment procéder, 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