Présentation des clés de chiffrement gérées par le client (CMEK)

Cette page décrit les clés de chiffrement gérées par le client (CMEK) pour Spanner. Pour en savoir plus sur les CMEK en général, y compris quand et pourquoi l'activer, consultez Documentation Cloud KMS

Par défaut, Spanner chiffre les contenus client au repos. Spanner 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 intégrés CMEK, y compris Spanner. L'utilisation de clés Cloud KMS vous permet de contrôler leur protection le niveau d'accès, l'emplacement, le calendrier de rotation, les autorisations d'utilisation et d'accès, ainsi que les limites cryptographiques. Cloud KMS vous permet également vous pouvez suivre l'utilisation des clés, consulter 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 la clé symétrique clés de chiffrement de clés (KEK) qui protègent vos données, vous contrôlez gérer ces clés dans Cloud KMS.

Une fois vos ressources configurées avec des clés CMEK, l'expérience d'accès à vos Les ressources Spanner s'apparentent à l'utilisation du chiffrement par défaut de Google. Pour en savoir plus sur vos options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Pour savoir comment utiliser des clés CMEK créées manuellement pour protéger vos ressources Spanner, consultez la section Sécuriser une base de données avec CMEK.

Chiffrement CMEK avec Cloud KMS Autokey

Vous pouvez créer des CMEK manuellement pour protéger votre clé Spanner ou utiliser Cloud KMS Autokey. Avec Autokey, les trousseaux et les clés sont générés à la demande lors de la création de ressources dans Spanner. Les agents de service qui utilisent les clés pour les opérations de chiffrement et de déchiffrement sont créés existent déjà et disposent des rôles IAM (Identity and Access Management) requis. Pour en savoir plus, consultez la section Présentation de la clé automatique.

Spanner est compatible uniquement avec Cloud KMS Autokey créer des ressources à l'aide de Terraform ou de l'API REST. Vous ne pouvez pas utiliser Cloud KMS Autokey pour créer plusieurs clés Cloud KMS régionales (monorégionales) pour une base de données Spanner.

Pour utiliser les CMEK créées par Cloud KMS Autokey pour protéger vos ressources Spanner, suivez les étapes fournies pour Secret Manager dans Utiliser Autokey avec les ressources Secret Manager.

Fonctionnalités

  • Contrôle des accès aux données:les administrateurs peuvent alterner les accès, désactiver ou détruire la clé utilisée pour protéger les données au repos dans Spanner.
  • Possibilité de réaliser des audits:si vous activez les journaux d'audit pour l'API Cloud KMS de votre projet, toutes les actions sur la clé, y compris celles effectuées par Spanner, sont consignées et consultables dans Cloud Logging. Les clés Cloud EKM sont compatibles avec Key Access Justifications, qui ajoute un champ de justification à toutes les requêtes de clé. Avec certains partenaires de gestion de clés externes, vous pouvez approuver ou refuser automatiquement ces demandes, en fonction de leur justification.
  • Performances : l'utilisation de CMEK n'a aucun impact sur les performances de Spanner ni sur le contrat de niveau de service.
  • Compatibilité avec plusieurs clés régionales : vous pouvez créer plusieurs clés Cloud KMS régionales (monorégionales) pour protéger une base de données dans une configuration d'instance Spanner personnalisée, birégionale ou multirégionale.

Tarifs

Spanner facture les bases de données utilisant CMEK comme n'importe quelle autre solution base de données. L'activation de CMEK n'entraîne aucun coût supplémentaire pour Spanner. Pour en savoir plus, consultez la page Tarifs de Spanner.

Cloud KMS vous facture à la fois le coût de la clé et les éventuels les opérations cryptographiques exécutées sur cette clé (chaque fois que Spanner utilise pour le chiffrement/déchiffrement). Nous nous attendons à ce que ces coûts soient minimes en fonction du nombre d'opérations cryptographiques générées par 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 sur laquelle CMEK est activé, Spanner utilise votre pour protéger les données au repos. Cela inclut les données d'une base de données stockées sur disque ou sur flash.

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

  • Sous-ensemble de clés de ligne qui marquent 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

Spanner comporte trois couches de chiffrement. Les données au repos sont divisées en fragments de sous-fichiers pour le stockage, chiffrées au niveau du stockage avec une clé de chiffrement individuelle. La clé utilisée pour chiffrer les données contenues dans un fragment est appelée "clé de chiffrement des données" (DEK, Data Encryption Key). En raison de la nécessité d'une faible latence et d'une disponibilité élevée, ainsi que du grand nombre de clés chez Google, celles-ci 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é (KEK, Key Encryption Key). Enfin, chaque La clé KEK est chiffrée avec votre clé CMEK.

Lorsque vous effectuez une rotation de la clé CMEK, Spanner ne rechiffre que les KEK intermédiaires avec la dernière version principale Clé CMEK. Une fois le chiffrement réactivé, la désactivation ou la suppression des versions précédentes de la clé CMEK ne désactivera 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

Schéma illustrant le chiffrement avec une clé détenue et gérée par Google

Activer les CMEK

Pour utiliser le chiffrement CMEK pour les bases de données 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. Spanner peut accéder à la clé en votre nom après avoir accordé le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) à un compte de service Spanner géré par Google. Pour obtenir des instructions détaillées, consultez Sécuriser une base de données avec une clé CMEK.

les API d'accès aux données de Spanner, tels que ceux qui sont utilisés pour gérer des sessions et exécuter des transactions sur des données, sont exactement les mêmes pour les CMEK, et les clés détenues et gérées par Google. Les applications n'ont pas besoin de spécifier des clés ou des configurations de chiffrement la lecture ou l'écriture de données. Le chiffrement est entièrement géré par le service.

Gérer les clés

Les opérations de gestion des clés sont effectuées à l'aide de Cloud KMS. Spanner ne peut ni détecter, ni exploiter les modifications d'une clé avant que celles-ci ne soient 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 la base de données créée, Spanner appelle Cloud KMS environ toutes les cinq minutes pour s'assurer que la clé est toujours valide.

Si 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 commence immédiatement. Tous les appels ultérieurs de la base de données, y compris les sessions, les lectures, et écrit une erreur FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.. Si Spanner les appels à Cloud KMS détectent qu'une clé précédemment désactivée a été réactivé, Cloud KMS rétablit l'accès la base de données.

De plus, si une base de données est protégée par plusieurs clés régionales et que toutes les clés sont désactivées ou détruites, Spanner commence immédiatement à rendre votre base de données inaccessible. Si Spanner détecte que seul un sous-ensemble des clés de la base de données est désactivé ou détruit, il désactive la base de données dans un délai de 12 heures. La désactivation ou la destruction d'un sous-ensemble de clés dans une base de données entraîner un comportement incertain. Pour éviter que cela ne se produise, vous pouvez utiliser la Métrique sur les clés CMEK Spanner (instance/replica/cmek/total_keys) pour déclencher une alerte si un sous-ensemble de clés désactivées ou détruites. Pour en savoir plus, consultez la section Créer une alerte pour la désactivation d'un sous-ensemble de CMEK.

Créer une alerte pour désactiver un sous-ensemble de CMEK

Vous pouvez utiliser Clés CMEK Spanner (/instance/replica/cmek/total_keys) pour déclencher une alerte si un sous-ensemble de CMEK sont désactivées ou détruites. Pour créer cette règle d'alerte, développez les étapes suivantes et paramètres:

Paramètres de la règle d'alerte CMEK.

ChampNouvelle condition

Valeur
Ressource et métrique Dans le menu Resources (Ressources), sélectionnez Spanner Instance (Instance Spanner).
Dans le menu Catégories de métriques, sélectionnez Instance.
Dans le menu Métriques, sélectionnez Clés CMEK.

(Le type de métrique est spanner.googleapis.com/instance/replica/cmek/total_keys).
Filter instance_id = INSTANCE_ID
is_key_revoked = TRUE
Sur toute une série temporelle
Grouper par séries temporelles
database
Dans toutes les séries temporelles
Agrégation de séries temporelles
sum
Fenêtre glissante 10 m
Fenêtrage glissant mean
Champ Configurer le déclencheur d'alerte

Valeur
Type de condition Threshold
Déclencheur d'alerte Any time series violates
Position du seuil Above threshold
Seuil 0
Fenêtre du nouveau test 1 hr
ChampNouvelle condition

Valeur
Ressource et métrique Dans le menu Resources (Ressources), sélectionnez Spanner Instance (Instance Spanner).
Dans le menu Catégories de métriques, sélectionnez Instance.
Dans le menu Métriques, sélectionnez Clés CMEK.

(Le type de métrique est spanner.googleapis.com/instance/replica/cmek/total_keys).
Filter instance_id = INSTANCE_ID
is_key_revoked = FALSE
Sur toute une série temporelle
Grouper par séries temporelles
database
Dans toutes les séries temporelles
Agrégation de séries temporelles
sum
Fenêtre glissante 10 m
Fenêtrage glissant mean
Champ Configurer le déclencheur d'alerte

Valeur
Type de condition Threshold
Déclencheur d'alerte Any time series violates
Position du seuil Above threshold
Seuil 0
Fenêtre du nouveau test 1 hr
Champ Configurer le déclencheur d'alerte

Valeur
Déclencheur à plusieurs conditions All conditions are met

Une fois l'alerte créée, si Spanner détecte qu'un sous-ensemble une clé CMEK a été désactivée, un récapitulatif de l'incident s'affiche sous Tableau Incidents sur la page Détails des règles de l'alerte. Vous pouvez également configurer des canaux de notification facultatifs. Pour en savoir plus, consultez Créer et gérer des canaux de notification

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

Dans de rares cas, par exemple pendant les périodes où Cloud KMS indisponible, Spanner ne parvient peut-être pas à récupérer l'état votre clé depuis Cloud KMS.

Si votre base de données Spanner est protégée par une clé activée à l'adresse l'heure à laquelle Spanner ne peut pas communiquer Cloud KMS, Spanner continue de prendre en charge l'intégralité de la base de données des opérations pendant une durée maximale d'une heure, afin de minimiser l'impact d'un tel incident sur votre charge de travail. Au bout d'une heure, si Spanner ne parvient toujours pas à se connecter à Cloud KMS, il commence à mettre la base de données hors connexion par mesure de protection. Les données de votre base de données Spanner restent inaccessibles jusqu'à ce que votre base de données puisse se reconnecter à Cloud KMS et que Cloud KMS réponde que la clé est bien active.

À l'inverse, si votre base de données Spanner est protégée par une clé est désactivé au moment où Spanner n'est pas en mesure communiquer avec Cloud KMS, votre base de données reste inaccessible jusqu'à ce qu'elle peut se reconnecter à Cloud KMS et que vous avez réactivé votre clé.

Si vous utilisez plusieurs clés régionales pour protéger un serveur Spanner uniquement les instances répliquées protégées par une clé résidant dans régionaux Cloud KMS indisponibles sont affectés par l'indisponibilité.

Remarques importantes concernant les 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, Spanner continue de prendre en charge des opérations de base de données complètes à l'aide d'une version de clé mise en cache, par jusqu'à une heure. Au bout d'une heure, si Spanner ne parvient toujours pas à se connecter à Cloud KMS, il commence à mettre la base de données hors connexion par mesure de protection. Les appels à la base de données échoueront FAILED_PRECONDITION erreur: External key error: Could not find a key resource at the key URI.

Si vous utilisez plusieurs clés Cloud EKM pour protéger votre base de données Spanner, seuls les réplicas protégés par la clé indisponible sont affectés par cette indisponibilité.

Pour en savoir plus sur l'utilisation de clés externes, consultez la Documentation Cloud External Key Manager

Sauvegarde et restauration

Vous pouvez utiliser des CMEK ou des clés appartenant à Google et gérées par Google pour protéger Spanner sauvegardes. Par défaut, une sauvegarde utilise le même configuration de chiffrement comme base de données, mais vous pouvez ignorer ce comportement en spécifiant la configuration du chiffrement lors de la création de la sauvegarde. Si la sauvegarde est activé par CMEK, il est chiffré à l'aide de la version principale de la clé KMS au niveau au moment de la création de la sauvegarde. Une fois la sauvegarde créée, la clé et la version de clé associées ne peuvent plus être modifiées, même si la clé KMS est alternée. Pour en savoir plus, consultez la section Sauvegarder une base de données.

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

Vous pouvez effectuer des opérations de sauvegarde telles que la création, la copie et la restauration sur avec plusieurs clés régionales.

Toutes les sauvegardes créées par calendriers de sauvegarde peuvent être protégées par des CMEK ou des clés détenues et gérées par Google. Toutefois, les planifications de sauvegarde incrémentielle ne peuvent être chiffrées qu'à l'aide de clés détenues et gérées par Google.

Journalisation

Vous pouvez auditer les requêtes envoyées par Spanner Cloud KMS dans Cloud Logging, si vous avez Activer les journaux d'audit pour l'API Cloud KMS dans votre projet. Ces entrées de journal Cloud KMS sont visibles dans Cloud Logging.

Exiger ou limiter le chiffrement CMEK dans votre organisation

Vous pouvez définir des règles à l'échelle de l'organisation concernant l'utilisation de la protection CMEK dans divers produits Google Cloud, y compris Spanner. Avec ces règles, vous pouvez:

  • Exiger que de nouvelles bases de données Spanner soient créées par votre organisation utiliser la protection CMEK.

  • Limiter les clés Cloud KMS de votre organisation disponibles pour Protection CMEK

Pour en savoir plus, consultez Règles d'administration CMEK.

Étape suivante