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

Par défaut, Google Cloud applique automatiquement chiffre les données au repos à l'aide de clés de chiffrement gérées par Google. Si vous avez des exigences de conformité ou 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 Dataform des dépôts.

Ce guide décrit l'utilisation de CMEK pour Dataform 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 l'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 à 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 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 cas 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 à Ressources Dataform. Dataform ne gère pas le chiffrement de données client créées dans BigQuery via l'exécution Workflows Dataform. Pour chiffrer les données créées et stockées dans BigQuery, configurer 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 après celui-ci a été 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 dans les différents emplacements, consultez Emplacements Cloud KMS

Quotas Cloud KMS et Dataform

Vous pouvez utiliser des clés Cloud HSM avec Dataform. Lorsque vous utilisez des CMEK dans Dataform, vos projets peuvent utiliser des requêtes de chiffrement Cloud KMS des quotas. 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 ni traiter des modifications clés tant que elles sont propagées par Cloud KMS. Certaines opérations, comme désactiver ou détruire une clé, jusqu'à trois heures pour être propagées. En général, les modifications apportées aux autorisations se propagent beaucoup plus rapidement.

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

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

Si Dataform appelle Détection par Cloud KMS d'une clé précédemment désactivée réactivé, 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 indisponible, Dataform risque de ne pas pouvoir récupérer l'état de votre clé depuis Cloud KMS.

Si votre dépôt Dataform est protégé par une clé activée au moment où Dataform ne peut pas de façon sécurisée avec Cloud KMS, le service devient inaccessible.

Les données du dépôt chiffrées restent inaccessibles jusqu'à Dataform. peut se reconnecter à Cloud KMS, et Cloud KMS répond que la clé est active.

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

Journalisation

Vous pouvez auditer les requêtes envoyées par Dataform Cloud KMS dans Cloud Logging, si vous avez Activer les journaux d'audit pour l'API Cloud KMS dans votre projet. Ces Les entrées de journal Cloud KMS sont visibles dans Cloud Logging : Pour en savoir plus, consultez Affichez les journaux.

Avant de commencer

  • Déterminez si vous allez exécuter Dataform et Cloud KMS dans différents projets 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éer le trousseau de clés à un emplacement correspondant à celui de votre dépôt:
      • 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é à partir d'un trousseau de clés situé dans 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 Emplacements Cloud.

Activer les CMEK

Dataform peut accéder à la clé en votre nom après vous octroyez à Cloud KMS Chiffreur/Déchiffreur de CryptoKeys (roles/cloudkms.cryptoKeyEncrypterDecrypter) au niveau 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 Dataform par défaut compte de service, procédez comme suit:

Console

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

    Ouvrir 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 des rôles actuels pour le de service géré.
  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 service. 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 adresse e-mail par défaut Compte de service Dataform
  • 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 après la création du dépôt.

Pour en savoir plus, consultez la section Restrictions.

Étape suivante