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 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 Cloud Key Management Service (Cloud KMS).
Cette page décrit le chiffrement CMEK pour le mode Datastore. Pour en savoir plus sur 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 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.
- Performances : les CMEK n'ont pas d'incidence sur le SLA Firestore.
- Possibilité de réaliser des audits : si vous activez la journalisation d'audit pour Cloud KMS, toutes les opérations 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 les 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 d'opérations cryptographiques attendu généré par le mode Datastore. 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 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. La tarification du mode Datastore continue 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 en mode Datastore protégée par CMEK, 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 effectuées pour chaque demande de données. Au lieu de cela, le système Firestore interroge Cloud KMS toutes les cinq minutes pour vérifier si la clé est toujours disponible, puis effectue les 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, 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
dans les 10 minutes.
Si la base de données comporte des règles de durée de vie (TTL) et que des délais d'expiration sont dépassés alors que 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 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. - Les opérations de création d'index et les opérations permettant de nouvelles règles TTL ne progresseront plus. Les opérations arrêtées seront relancées si la clé est rétablie.
Les clés sont considérées comme indisponibles dans toutes les situations où Firestore est intentionnellement empêché d'y accéder. Par exemple :
- Désactiver ou détruire la version de clé en cours d'utilisation. Soyez prudent lorsque vous détruisez une version de clé, car cela peut entraîner une perte de données irrécupérable.
- Supprimez l'autorisation d'accéder à la clé depuis le compte de service Firestore.
Si la clé est rétablie, l'opération d'interrogation détecte qu'elle est à nouveau disponible. L'accès est rétabli, généralement en quelques minutes, mais il peut prendre jusqu'à 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'elle n'a pas pris effet dans Cloud KMS.
La réactivation 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 destruction. 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.
- Accordez de nouveau à l'agent de service Firestore l'autorisation d'accéder à la clé.
Points à prendre en compte pour 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 primaire de la clé CMEK. Pendant le processus de rechiffrement, conservez l'ancienne et la nouvelle version de clé disponibles. Une fois le rechiffrement terminé, la désactivation ou la suppression des anciennes versions de la clé CMEK n'empêchera 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és utilisées pour protéger une base de données. Pour en savoir plus, consultez 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 au mieux pendant une heure.
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 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 en mode Datastore protégée par CMEK crée une sauvegarde, elle la chiffre avec la version principale de la clé 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 plannings de sauvegarde.
Pour en savoir plus sur les sauvegardes en mode Datastore, consultez 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 une base de données CMEK avec une clé nouvellement spécifiée.
- Restaurer une base de données non CMEK qui utilise le chiffrement par défaut de Google.
- Restaurez la base de données en utilisant le même chiffrement que la sauvegarde.
Pour en savoir plus sur la restauration d'une base de données en mode Datastore à partir d'une sauvegarde, consultez 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 en mode Datastore protégée par CMEK à partir d'une sauvegarde, consultez Restaurer une base de données protégée par CMEK.
Suivi des clés
Vous pouvez utiliser le suivi des clés pour afficher les ressources qu'une clé protège (par exemple, les bases de données en mode Datastore). Pour en savoir plus sur le suivi des clés, consultez Afficher l'utilisation des clés.
CMEK et disponibilité des clés
Lorsque les clés ne sont pas disponibles ou sont désactivées, voici les comportements qui peuvent se produire dans les bases de données compatibles avec les CMEK :
- Vous pouvez modifier les paramètres de récupération à un instant précis (PITR) du mode Datastore sur une base de données compatible CMEK, même si la clé n'est pas disponible. En effet, 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 dont les clés ne sont pas disponibles.
- 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 de 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 et renverra une erreur 400
FAILED_PRECONDITION
.
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 les clés.
- Les bases de données protégées par 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 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 existante non protégée par 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 également restaurer des données à partir 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.
- Nous ne prenons pas en charge la protection CMEK avec l'intégration de Cloud Functions (1re génération). Si vous souhaitez bénéficier de la protection CMEK, utilisez les déclencheurs Firestore pour les fonctions Cloud Run (2nd gen).