Par défaut, toutes les données au repos dans Firestore en mode Datastore sont chiffrées à l'aide de la méthode Chiffrement par défaut de Google Le mode Datastore traite et gère ce chiffrement sans intervention 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 qui protègent vos données, votre base de données en mode Datastore est protégée à l'aide d'une clé que vous contrôlez et gérez dans le service 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 à CMEK avec le mode Datastore, consultez la section Utiliser CMEK.
Fonctionnalités
- Contrôle des données : 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.
- Performance: la clé CMEK n'a aucune incidence Contrat de niveau de service Firestore.
- Possibilité de réaliser des audits: si vous Activer les journaux d'audit pour Cloud KMS toutes les opérations effectuées sur la clé sont enregistrées et consultables dans Cloud Logging.
- Contraintes liées aux règles d'administration: vous pouvez utiliser Contraintes liées aux règles d'administration CMEK permettant de spécifier les exigences de conformité du chiffrement pour les bases de données en mode Datastore dans 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 Cloud KMS tarifs.
Les coûts d'exploitation vous sont facturés lorsque le mode Datastore demande à Cloud KMS pour effectuer une opération de chiffrement ou de déchiffrement. L'opération de chiffrement/déchiffrement de la clé gérée par le client a lieu toutes les 5 minutes 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 d'opérations cryptographiques générées par le 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 CMEK n'entraîne aucun coût supplémentaire en mode Datastore, et la tarification du mode Datastore continue de s'appliquer.
Si vous révoquez la clé d'une base de données, les frais de stockage sont facturés en fonction du la taille du dernier jour de disponibilité de la clé. Vous continuerez à payer des frais de stockage à cette taille de base de données jusqu'à ce qu'elle soit supprimée ou que la clé redevienne 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 émises pour chaque requête de données. À la place, le système Firestore interroge Cloud KMS toutes les cinq minutes pour vérifier si est toujours disponible, puis effectue des opérations de chiffrement et de déchiffrement si le est disponible.
Si le système détecte que la clé n'est pas disponible, dans un délai de 10 minutes, tous les appels ultérieurs à la base de données 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 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 le base de données avec des opérations de longue durée, elles seront affectées ce qui suit:
- Les opérations d'importation ou d'exportation de données ne progresseront plus et seront marquées comme
Failed
. Les opérations ayant échoué ne seront pas réessayées si la clé est rétablie. - Opérations de création d'index et d'activation de la nouvelle valeur TTL ne progresseront plus. Les opérations arrêtées seront réessayées si la clé est rétablie.
Les clés sont considérées comme non disponibles dans toutes les situations qui interdisent intentionnellement Firestore d'accéder à la clé. Par exemple :
- Désactiver ou détruire la version de clé utilisée. Veuillez faire preuve de prudence lorsque vous détruissez une version de clé, car cela peut entraîner une perte de données irrécupérable.
- Suppression de l'autorisation d'accès à partir du compte de service Firestore.
Si la clé est rétablie, l'opération de sondage détecte qu'elle est à nouveau disponible. 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 la propagation de certaines opérations sur les clés Cloud KMS, telles que la désactivation ou la destruction d'une clé, peut prendre jusqu'à trois heures. 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éactivez une version de clé désactivée.
- Restaurer une version de clé détruite. Avant d'être détruite définitivement, une version de clé est programmée pour de destruction. Vous ne pouvez restaurer une clé que pendant la période où une version de clé dont la destruction est programmée. 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.
Remarques 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. Lors du processus de rechiffrement, conservez l'ancienne et la nouvelle version de 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é dans utiliser.
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 prennent en charge des opérations de base de données complètes à l'aide d'une version de clé mise en cache, pour une durée maximale de une heure.
Au bout d'une heure, si le mode Datastore ne parvient toujours pas à se connecter
Cloud KMS, en mode Datastore, met la base de données hors connexion
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'avez créée. 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 au bout de 24 jours heures s'écoulent à partir du moment où vous activez les programmations de sauvegarde.
Pour en savoir plus sur les sauvegardes en mode Datastore, consultez la section Sauvegarder et restaurer des données.
Une base de données restaurée à partir d'une sauvegarde utilise le même mécanisme de chiffrement que sauvegarde par défaut. Lorsque vous restaurez une base de données, vous pouvez spécifier un autre type de chiffrement de l'une des manières suivantes :
- Restaurez une base de données CMEK avec une nouvelle clé.
- Restaurez-la dans une base de données non CMEK qui utilise le chiffrement par défaut de Google.
- Restaurez-la 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 touches
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 en mode Datastore sur une base de données pour laquelle CMEK est activé 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 échoue et génère une erreur
FAILED_PRECONDITION
400.
Limites
- Vous ne pouvez pas modifier la clé d'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 vers une base de données protégée par CMEK, exportez vos données, puis importez-les dans une nouvelle base de données protégée par 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 des clés CMEK.
- La protection CMEK n'est pas compatible avec l'intégration de Cloud Functions (1re génération). Si vous souhaitez bénéficier d'une protection CMEK, utilisez les déclencheurs Firestore (2e génération) des fonctions Cloud Run.