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

Par défaut, toutes les données au repos dans Firestore en mode Datastore sont chiffrées à l'aide du chiffrement par défaut de Google. Le mode Datastore gère et gère ce chiffrement à votre place sans aucune action supplémentaire 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) pour le mode Datastore. Au lieu de laisser Google gérer les clés de chiffrement vos données, la base de données en mode Datastore est protégée à l'aide d'une clé contrôler et gérer dans Cloud Key Management Service (Cloud KMS).

Cette page décrit le chiffrement CMEK pour le mode Datastore. Pour en savoir plus sur les CMEK en général, y compris quand et pourquoi l'activer, consultez la documentation Cloud KMS suivante:

Pour obtenir des instructions sur l'exécution de tâches liées aux CMEK en mode Datastore, consultez Utiliser des CMEK.

Fonctionnalités

  • Contrôle des données: une CMEK vous permet de gérer la clé KMS. Vous pouvez faire pivoter, désactiver et détruire la clé utilisée pour chiffrer les données au repos dans votre base de données en mode Datastore.
  • Performances : CMEK n'a aucun impact sur l'engagement de niveau de service Firestore.
  • Possibilité de réaliser des audits : si vous activez la journalisation d'audit pour Cloud KMS, toutes les opérations effectuées sur la clé sont enregistrées et visibles dans Cloud Logging.
  • Contraintes de règle d'administration : vous pouvez utiliser les contraintes de règle d'administration CMEK pour spécifier des exigences de conformité en matière de chiffrement pour les bases de données en mode Datastore de votre organisation.

Tarifs

Cloud KMS facture le coût de la clé ainsi que toutes les opérations cryptographiques effectuées avec cette clé. Pour en savoir plus, consultez la page Tarifs de Cloud KMS.

Le coût des opérations vous est facturé lorsque le mode Datastore demande à la clé Cloud KMS d'effectuer une opération de chiffrement ou de déchiffrement. L'opération de chiffrement/déchiffrement par la clé gérée par le client a lieu toutes les cinq minutes et n'est pas synchronisée avec les requêtes de base de données. Les coûts sont généralement faibles, compte tenu du nombre attendu d'opérations cryptographiques générées par Mode Datastore. Les coûts de Cloud Audit Logging représentent une dépense supplémentaire, mais ils devraient également être généralement faibles, compte tenu du nombre d'opérations cryptographiques attendu.

L'utilisation d'une base de données protégée par des clés CMEK n'engendre aucun coût supplémentaire en mode Datastore et les tarifs du mode Datastore continuent de s'appliquer.

Si vous révoquez votre clé pour une base de données, les coûts de stockage seront facturés en fonction de la taille du dernier jour où la clé était disponible. Vous continuerez à recevoir les coûts de stockage pour cette taille de base de données, jusqu'à ce que la base de données soit supprimée ou que la clé redevient disponible.

Éléments protégés par CMEK

Lorsque vous créez une base de données protégée par CMEK en mode Datastore, votre clé Cloud KMS est utilisée pour protéger les données au repos. Cela inclut les données qui stockés sur un disque ou une clé USB, y compris des index et des sauvegardes. Un peu que des exceptions s'appliquent. Les types de données suivants sont chiffrés avec les paramètres Google par défaut et non par la clé CMEK:

  • Les données en transit ou en mémoire
  • Métadonnées de base de données

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

Les opérations de chiffrement et de déchiffrement ne sont pas effectuées pour chaque requête de données. À la place, le système Firestore interroge Cloud KMS toutes les cinq minutes pour vérifier si la clé est toujours disponible, puis effectue des opérations de chiffrement et de déchiffrement si elle l'est.

Si le système détecte que la clé n'est pas disponible, dans les 10 minutes pour tout appel ultérieur à la base de données Firestore, y compris les lectures, les écritures et les requêtes, renvoie une erreur FAILED_PRECONDITION avec le message The customer-managed encryption key required by the requested resource is not accessible.

Si la base de données comporte des règles de valeur TTL (Time To Live) et si des délais d'expiration sont dépassés lorsque la clé n'est pas disponible, la suppression des données par TTL est retardée jusqu'à ce que la clé soit rétablie. Si la base de données comporte des opérations de longue durée en cours, elles seront affectées comme suit :

  • Les opérations d'import ou d'exportation de données cesseront progression, et être marqué comme Failed. Les opérations ayant échoué ne seront pas réessayées si la clé est rétablie.
  • Les opérations de création d'index et les opérations activant de nouvelles règles de TTL ne progresseront plus. Les opérations arrêtées une nouvelle tentative si la clé est rétablie.

Les clés sont considérées comme indisponibles dans toute situation où Firestore est intentionnellement empêché d'y accéder. Par exemple :

Si la clé est rétablie, l'opération d'interrogation détecte que la clé est à nouveau disponibles. La réactivation de l'accès est effectuée généralement en quelques minutes, mais peut prendre quelques heures dans de rares cas. Notez que certaines opérations exécutées sur Cloud KMS telles que la désactivation ou la destruction d'une clé, 3 heures pour la propagation. Firestore ne détecte aucune modification tant qu'elles n'ont pas pris effet dans Cloud KMS.

Le rétablissement d'une clé implique les opérations suivantes, selon la situation:

  • Réactiver une version de clé désactivée.
  • Restauration d'une version de clé détruite Avant d'être détruite définitivement, une version de clé est programmée pour être détruite. Vous ne pouvez restaurer une clé que pendant la période où une version de clé est programmée pour destruction. Vous ne pouvez pas restaurer une clé qui a déjà été détruite de manière permanente.
  • Réattribuer le Autorisation d'accès à la clé par l'agent de service Firestore.

Considérations concernant la rotation des clés

Lorsque vous effectuez une rotation de la clé CMEK, le mode Datastore rechiffre la base de données avec la dernière version principale de la clé CMEK. Pendant le rechiffrement l'ancienne et la nouvelle version de clé doivent rester disponibles. Une fois le rechiffrement est terminée, 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 puisqu’elle est chiffrée avec la nouvelle version de clé primaire.

Vous pouvez également afficher les versions de clé utilisées pour protéger une base de données. Pour en savoir plus, consultez la section Afficher la clé utilisée.

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, le mode Datastore continue de prendre en charge les opérations de base de données complètes à l'aide d'une version de clé mise en cache, pendant une heure au maximum.

Au bout d'une heure, si le mode Datastore 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 avec une erreur FAILED_PRECONDITION qui inclut des informations supplémentaires.

Pour en savoir plus, consultez la documentation Cloud External Key Manager. lors de l'utilisation de clés externes.

Sauvegarde et restauration

Une sauvegarde utilise le même mécanisme de chiffrement que la base de données à partir de laquelle vous l'a créé. Lorsqu'une base de données en mode Datastore protégée par CMEK crée une sauvegarde, elle la chiffre avec la version de clé primaire utilisée au moment de la création de la sauvegarde.

Le mode Datastore crée la première sauvegarde d'une base de données CMEK 24 heures après l'activation des planifications de sauvegarde.

Pour en savoir plus sur les sauvegardes en mode Datastore, consultez la section Sauvegarde et restaurer des données.

Par défaut, une base de données restaurée à partir d'une sauvegarde utilise le même mécanisme de chiffrement que la sauvegarde. Lorsque vous restaurez une base de données, vous pouvez spécifier un autre de chiffrement de l'une des manières suivantes:

  • Restaurez dans une base de données CMEK avec une clé nouvellement spécifiée.
  • Restaurez une base de données non CMEK qui utilise le chiffrement par défaut de Google.
  • Restaurez les données dans une base de données qui utilise le même chiffrement que la sauvegarde.

Pour plus d'informations sur la restauration d'une base de données en mode Datastore à partir d'un sauvegarde, consultez Restaurer des données à partir d'une sauvegarde de base de données. Pour plus informations sur la restauration d'une base de données en mode Datastore protégée par une clé CMEK à partir d'une sauvegarde, consultez Restaurer une base de données protégée par une clé CMEK.

Suivi des clés

Vous pouvez utiliser le suivi des clés pour afficher les ressources (par exemple, les bases de données en mode Datastore) qu'une clé protège. Pour en savoir plus sur le suivi des clés, consultez Consultez l'utilisation de la clé.

CMEK et disponibilité des clés

Lorsque les clés sont indisponibles ou désactivées, tenez compte des comportements suivants qui peuvent se produire dans les bases de données pour lesquelles les CMEK sont activés:

  • Vous pouvez modifier les paramètres de récupération à un moment précis (PITR, Point-in-Time Recovery) du mode Datastore sur une base de données compatible avec CMEK, même si la clé n'est pas disponible, car les paramètres PITR sont des métadonnées de base de données, qui ne sont pas chiffrées par CMEK.
  • Vous pouvez supprimer une base de données CMEK contenant des clés indisponibles.
  • Lorsque vous créez une base de données compatible avec CMEK, les clés désactivées ne s'affichent pas dans la liste des clés disponibles dans la console Google Cloud. Si vous saisissez manuellement une clé désactivée, le processus de création de la base de données échouera avec une erreur FAILED_PRECONDITION 400.

Limites

  • Vous ne pouvez pas modifier une clé pour une base de données protégée par une clé CMEK. Vous pouvez faire pivoter, activer et désactiver des clés.
  • Compatibilité avec les bases de données protégées par des clés CMEK Key Visualizer uniquement pour les entités et et non pour les données d'index.
  • Vous ne pouvez pas activer CMEK sur des bases de données existantes. Vous ne pouvez activer CMEK que sur les nouvelles bases de données, et vous devez l'activer lorsque vous créez la base de données. Pour migrer les données d'une base de données non-CMEK existante vers une base de données protégée par une clé CMEK, exporter vos données, puis importez-les dans une nouvelle base de données protégée par une clé CMEK. Vous pouvez ou restaurer les données d'une base de données non CMEK vers une base de données CMEK.
  • Firestore accepte un nombre limité de bases de données protégées par CMEK.

Étape suivante