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

Par défaut, toutes les données au repos dans Cloud Firestore sont chiffrées à l'aide de le chiffrement par défaut de Google. Cloud Firestore gère et gère ce chiffrement pour vous 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 Cloud Firestore. Au lieu de laisser Google gérer les clés de chiffrement qui protègent vos données, votre base de données Cloud Firestore est protégée à l'aide d'une clé que vous contrôlez et gérez dans Cloud Key Management Service (Cloud KMS).

Cette page décrit les clés CMEK pour Cloud Firestore. Pour en savoir plus sur les clés CMEK en général, y compris quand et pourquoi les activer, consultez la documentation Cloud KMS suivante :

Pour obtenir des instructions sur l'exécution de tâches liées à CMEK avec Cloud Firestore, consultez la section Utiliser CMEK.

Fonctionnalités

  • Contrôle des données : les clés CMEK vous permettent de gérer la clé KMS. Vous pouvez alterner, désactiver et détruire la clé utilisée pour chiffrer les données au repos dans votre Cloud Firestore base de données.
  • Performances : les clés CMEK n'ont pas d'incidence sur le Cloud Firestore contrat de niveau de service.
  • 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 consignées et visibles dans Cloud Logging.
  • Contraintes liées aux règles d'administration : vous pouvez utiliser des contraintes liées aux règles d'administration CMEK pour spécifier des exigences de conformité en matière de chiffrement pour les bases de donnéesCloud Firestore 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 Cloud Firestore 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 Cloud Firestore. Les coûts liés à Cloud Audit Logs représentent une dépense supplémentaire, mais ils devraient également être généralement faibles, compte tenu du nombre attendu d'opérations cryptographiques.

L'utilisation d'une base de données protégée par une clé CMEK n'entraîne aucun coût Cloud Firestore supplémentaire et les tarifs Cloud Firestore continuent de s'appliquer.

Si vous révoquez votre clé pour une base de données, les frais de stockage seront facturés en fonction de la taille du dernier jour où la clé était disponible. Vous continuerez à payer des frais 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é soit à nouveau disponible.

Éléments protégés par CMEK

Lorsque vous créez une base de données protégée par une clé CMEK Cloud Firestore, votre clé Cloud KMS est utilisée pour protéger les données au repos. Cela inclut les données que vous stockez sur un disque ou une clé USB, y compris les index et les sauvegardes. Certaines exceptions s'appliquent. Les types de données suivants sont chiffrés avec le chiffrement par défaut de Google et non avec 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 émises pour chaque requête de données. Au lieu de cela, le système Cloud 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 la clé est disponible.

Si le système détecte que la clé n'est pas disponible, dans les 10 minutes, tous les appels suivants à la base de données Cloud Firestore, y compris les lectures, les écritures et les requêtes, renvoient 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 que des délais d'expiration sont dépassés lorsque la clé n'est pas disponible, la suppression des données par TTL sera retardée jusqu'à ce que la clé soit rétablie. Si des opérations de longue durée sont en cours dans la base de données, elles seront affectées comme suit :

Les clés sont considérées comme indisponibles dans toutes les situations qui interdisent intentionnellement à Cloud Firestore d'y accéder. Par exemple :

Si la clé est rétablie, l'opération d'interrogation détecte qu'elle est à nouveau disponible. L'accès est réactivé, généralement en quelques minutes, mais cela peut prendre jusqu'à quelques heures dans de rares cas. Notez que certaines opérations sur les clés Cloud KMS, telles que la désactivation ou la destruction d'une clé, peuvent prendre jusqu'à trois heures pour se propager. Cloud Firestore ne détecte aucune modification tant qu'elle n'est pas effective dans Cloud KMS.

Le rétablissement d'une clé implique les éléments suivants, selon la situation :

  • Réactiver une version de clé désactivée.
  • Restaurer une version de clé détruite. Avant d'être définitivement détruite, 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 être détruite. Vous ne pouvez pas restaurer une clé qui a déjà été définitivement détruite.
  • Accorder à nouveau à l'agent de Cloud Firestore service l'autorisation d'accéder à la clé.

Considérations relatives à la rotation des clés

Lorsque vous effectuez une rotation de la clé CMEK, Cloud Firestore rechiffre la base de données avec la dernière version principale de la clé CMEK. Pendant le processus de rechiffrement, conservez l'ancienne et la nouvelle version de la clé. Une fois le rechiffrement terminé, la désactivation ou la suppression des anciennes versions de la clé CMEK ne désactivera pas l'accès à la base de données, car 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é en cours d'utilisation.

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, Cloud Firestore continue de prendre en charge les opérations de base de données complètes au mieux de ses capacités pendant une heure au maximum.

Au bout d'une heure, si Cloud Firestore ne parvient toujours pas à se connecter à Cloud KMS, Cloud Firestore 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 sur l'utilisation des clés externes, consultez la documentation de Cloud External Key Manager.

Sauvegarde et restauration

Une sauvegarde utilise le même mécanisme de chiffrement que la base de données à partir de laquelle vous l'avez créée. Lorsqu'une base de données Cloud Firestore protégée par une clé 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.

Cloud Firestore 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 Cloud Firestore, consultez la section Sauvegarder 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 type de chiffrement de l'une des manières suivantes :

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

Pour en savoir plus sur la restauration d'une base de données Cloud Firestore à partir d'une sauvegarde, consultez la section Restaurer des données à partir d'une sauvegarde de base de données. Pour en savoir plus sur la restauration d'une base de données Cloud Firestore protégée par une clé CMEK à partir d'une sauvegarde, consultez la section Restaurer une base de données protégée par une clé CMEK.Cloud Firestore

Cloner

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

  • Cloner dans une base de données CMEK avec une clé nouvellement spécifiée.
  • Cloner dans une base de données non CMEK qui utilise le chiffrement par défaut de Google.
  • (Par défaut) Cloner dans une base de données qui utilise le même chiffrement que la base de données source.

Pour en savoir plus sur le clonage d'une base de données Cloud Firestore, consultez la section Cloner une base de données. Pour en savoir plus sur le clonage d'une base de données protégée par une clé CMEK, consultez la section Cloner une base de données protégée par une clé CMEK.Cloud Firestore

Suivi des clés

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

Clés CMEK et disponibilité des clés

Lorsque les clés ne sont pas disponibles ou sont désactivées, tenez compte des comportements suivants qui peuvent se produire dans les bases de données compatibles avec les clés CMEK :

  • Vous pouvez modifier les paramètres de récupération à un point dans le temps (PITR) de Cloud Firestore sur une base de données compatible avec les clés 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 les clés CMEK.
  • Vous pouvez supprimer une base de données CMEK dont les clés ne sont pas disponibles.
  • Lorsque vous créez une base de données compatible avec les clés 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 alterner, activer et désactiver des clés.
  • Les bases de données protégées par une clé CMEK ne sont compatibles avec Key Visualizer que pour les données d'entité et de document, et non pour les données d'index.
  • Vous ne pouvez pas activer les clés CMEK sur les bases de données existantes. Vous ne pouvez activer les clés CMEK que sur les nouvelles bases de données, et vous devez les activer lorsque vous créez la base de données. Pour migrer des données d'une base de données non CMEK existante vers une base de données protégée par une clé CMEK, exportez vos données, puis importez-les dans une nouvelle base de données protégée par une clé CMEK. Vous pouvez également restaurer ou cloner des données d'une base de données non CMEK vers une base de données CMEK.
  • Cloud Firestore est compatible avec un nombre limité de bases de données protégées par une clé CMEK.
  • Nous ne sommes pas compatibles avec la protection par clé CMEK avec l'intégration de Cloud Functions (1re génération). Si vous souhaitez bénéficier d'une protection par clé CMEK, utilisez Cloud Run déclencheurs Firestore des fonctions (2e génération).

Comment les données peuvent quitter les bases de données protégées par une clé CMEK

  • Les données copiées par votre application peuvent être stockées par ses utilisateurs de manière arbitraire. Des contrôles de sécurité appropriés sont requis pour toute application accédant aux données Cloud Firestore afin de s'assurer que seules les personnes disposant des autorisations appropriées y accèdent. Pour en savoir plus, consultez les règles de sécurité et IAM.

  • Les données d'une base de données protégée par une clé CMEK peuvent être déplacées vers une base de données non CMEK à l'aide des fonctionnalités de sauvegarde et de restauration, de clonage, ou d'importation et d'exportation. Utilisez les contrôles IAM appropriés pour n'accorder l'autorisation d'effectuer ces actions qu'aux utilisateurs autorisés. De plus, des contraintes liées aux règles d'administration CMEK peuvent être utilisées pour exiger que toutes les bases de données créées par restauration ou clonage et tous les Cloud Storage buckets utilisés pour l'importation soient protégés par une clé CMEK.

Étape suivante