Clés de chiffrement gérées par le client (CMEK)

Par défaut, toutes les données au repos dans Google Cloud, y compris les données dans Cloud Spanner, sont protégées par le chiffrement par défaut géré par Google. Google Cloud traite et gère ce chiffrement par défaut sans requérir aucune action de votre part.

Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK, Customer-Managed Encryption Keys) pour Cloud Spanner. Au lieu de laisser Google gérer les clés de chiffrement qui protègent vos données, votre base de données Cloud Spanner est protégée à l'aide d'une clé que vous contrôlez et gérez dans Cloud Key Management Service (KMS). Il peut s'agir d'une clé symétrique, d'une clé Cloud HSM ou d'une clé Cloud External Key Manager.

Cette page décrit le chiffrement CMEK pour Cloud Spanner. Pour plus d'informations sur le chiffrement CMEK en général, y compris quand et pourquoi les activer, consultez la documentation de Cloud KMS.

Fonctionnalités

  • Contrôle de l'accès aux données:les administrateurs peuvent effectuer une rotation des clés, gérer les accès et désactiver ou détruire la clé utilisée pour protéger les données au repos dans Cloud Spanner.
  • Possibilité de réaliser des audits:si vous activez la journalisation d'audit pour l'API Cloud KMS dans votre projet, toutes les actions sur la clé, y compris celles effectuées par Cloud Spanner, , sont consignés et visibles dans Cloud Logging. Les clés Cloud EKM sont compatibles avec la Justification de l'accès aux clés, qui ajoute un champ de justification à toutes les demandes de clés. Avec certains partenaires de gestion de clés externes, vous pouvez approuver ou refuser automatiquement ces requêtes en fonction de la justification.
  • Performances:aucune modification n'est apportée aux performances de Cloud Spanner ni au contrat de niveau de service.

Tarifs

Cloud Spanner facture les bases de données compatibles avec CMEK comme n'importe quelle autre base de données ; Aucuns frais supplémentaires ne sont facturés pour Cloud Spanner. Pour en savoir plus, consultez la page Tarifs de Cloud Spanner.

Cloud KMS vous est facturé au coût de la clé et à toute opération de chiffrement sur cette clé (à chaque fois que Cloud Spanner utilise la clé pour le chiffrement/déchiffrement). Nous estimons que ces coûts sont minimes en fonction du nombre attendu d'opérations de chiffrement générées par Cloud Spanner. Pour en savoir plus, consultez la page Tarifs de Cloud KMS.

Éléments protégés par CMEK

Dans une base de données où CMEK est activé, Cloud Spanner utilise votre clé Cloud KMS pour protéger les données au repos. Cela inclut les données d'une base de données stockées sur un disque ou un flash.

Des exceptions s'appliquent. Les types de données suivants sont protégés par le chiffrement par défaut de Google au repos et non par la clé CMEK:

  • Un sous-ensemble de clés de ligne qui marque les limites de plage
  • Les données de débogage, y compris les vidages de mémoire et les journaux opérationnels
  • Les données en transit ou en mémoire
  • Métadonnées de base de données

Il existe trois niveaux de chiffrement dans Cloud Spanner. Les données au repos sont divisées en fragments de sous-fichiers pour le stockage, et chaque fragment est chiffré au niveau du stockage à l'aide d'une clé de chiffrement individuelle. La clé permettant de chiffrer les données dans un fragment s'appelle une clé de chiffrement de données (DEK, Data Encryption Key). En raison du volume élevé de clés chez Google et du besoin de faible latence et de haute disponibilité, ces clés sont stockées à proximité des données qu'elles chiffrent. Les DEK sont elles-mêmes chiffrées (ou "encapsulées") à l'aide d'une clé de chiffrement de clés (KEK, Key Encryption Key). Enfin, chaque clé KEK est chiffrée avec votre clé de chiffrement gérée par le client.

Lorsque vous effectuez une rotation de la clé CMEK, Cloud Spanner ne rechiffre que les KEK intermédiaires avec la dernière version principale de la clé CMEK. Une fois le chiffrement terminé, la désactivation ou la suppression des anciennes versions de la clé CMEK ne désactive pas l'accès à la base de données. Vous pouvez également afficher les versions de clé utilisées pour protéger une base de données.

Avec CMEK

"Schéma illustrant le chiffrement avec une clé de chiffrement gérée par le client"

Sans CMEK

"Diagramme illustrant le chiffrement avec une clé de chiffrement gérée par Google"

Activer CMEK

Pour utiliser la fonctionnalité CMEK pour les bases de données Cloud Spanner, vous devez créer une base de données et spécifier la clé Cloud KMS au moment de la création de la base de données.

Cloud Spanner peut accéder à la clé en votre nom après avoir accordé Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter ) à un rôle géré par Google.Compte de service Cloud Spanner s'affiche en haut de l'écran.

Pour obtenir des instructions détaillées, consultez la page Utiliser CMEK.

Les API d'accès aux données de Cloud Spanner, telles que celles utilisées pour gérer les sessions et exécuter des transactions sur des données, sont identiques pour les bases de données activées par Google et CMEK. Les applications n'ont pas besoin de spécifier de clés ni de configurations de chiffrement lors de la lecture ou de l'écriture de données. Tout le chiffrement est géré par le service.

Gestion des clés

Les opérations de gestion des clés sont effectuées à l'aide de Cloud KMS. Cloud Spanner ne peut pas détecter ou agir sur les modifications de clés tant qu'il n'a pas été propagé 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 sont généralement beaucoup plus rapides.

Une fois la base de données créée, Cloud Spanner appelle Cloud KMS toutes les cinq minutes environ pour vous assurer que la clé est toujours valide.

Si Cloud Spanner détecte que votre clé Cloud KMS a été désactivée ou détruite, une opération visant à rendre votre base de données inaccessible démarre immédiatement. Tous les appels ultérieurs de la base de données, y compris les sessions, les lectures et les écritures, renverront une erreur FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.

Si les appels de Cloud Spanner à Cloud KMS détectent qu'une clé précédemment désactivée a été réactivée, Cloud KMS rétablit automatiquement l'accès à la base de données Cloud Spanner.

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

Dans de rares scénarios, par exemple lorsque Cloud KMS n'est pas disponible, il est possible que Cloud Spanner ne puisse pas récupérer l'état de votre clé à partir de Cloud KMS.

Si votre base de données Cloud Spanner est protégée par une clé activée au moment où Cloud Spanner ne parvient pas à communiquer avec Cloud KMS, il est toujours possible d'effectuer des opérations complètes sur les bases de données au mieux. sur une période maximale d'une heure au maximum, afin de minimiser l'impact d'un tel incident sur votre charge de travail.

Au bout d'une heure, si Cloud Spanner ne parvient toujours pas à se connecter à Cloud KMS, la base de données commence à être mise hors ligne hors connexion. Les données de votre base de données Cloud Spanner restent inaccessibles jusqu'à ce que celle-ci puisse se reconnecter à Cloud KMS et que Cloud KMS répond que la clé est active.

Inversement, si votre base de données Cloud Spanner est protégée par une clé désactivée au moment où Cloud Spanner ne peut pas communiquer avec Cloud KMS pour la première fois, celle-ci reste inaccessible jusqu'à ce qu'elle puisse se reconnecter. à Cloud KMS, et vous avez réactivé votre clé.

Considérations relatives aux clés externes

Lorsque vous utilisez une clé Cloud EKM, Google n'a aucun contrôle sur la disponibilité de votre clé gérée en externe dans le système partenaire de gestion des clés externes.

Si une clé gérée en externe n'est pas disponible, Cloud Spanner reste compatible avec les opérations de base de données complètes à l'aide d'une version mise en cache de la clé, pendant une heure maximum.

Au bout d'une heure, si Cloud Spanner ne parvient toujours pas à se connecter à Cloud KMS, la base de données commence à être mise hors ligne hors connexion. Les appels à la base de données échouent avec une erreur FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

Consultez la documentation Cloud External Key Manager pour en savoir plus sur l'utilisation de clés externes.

Sauvegarde et restauration

Les sauvegardes Cloud Spanner, comme les bases de données, peuvent être protégées par des clés CMEK ou gérées par Google. Par défaut, une sauvegarde utilise la même configuration de chiffrement que sa base de données, mais vous pouvez ignorer ce comportement en spécifiant une configuration de chiffrement différente lorsque vous créez la sauvegarde. Si la sauvegarde est activée, CMEK est chiffré à l'aide de la version principale de la clé KMS au moment de la création de la sauvegarde. Une fois la sauvegarde créée, sa clé et sa version de clé ne peuvent plus être modifiées, même si la clé KMS est alternée. Pour plus d'informations, consultez la page Sauvegarder une base de données.

Lorsque vous restaurez une base de données à partir d'une sauvegarde, la base de données restaurée utilise par défaut la même configuration de chiffrement que la sauvegarde. Vous pouvez ignorer ce comportement en spécifiant une configuration de chiffrement différente lorsque vous restaurez la base de données. Pour restaurer une sauvegarde activée avec CMEK, la clé et la version de clé utilisées pour chiffrer la sauvegarde doivent être disponibles. Pour en savoir plus, consultez la page Restaurer à partir d'une sauvegarde.

Logging

Vous pouvez vérifier les requêtes que Cloud Spanner envoie à Cloud KMS en votre nom 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.