À propos des clés de chiffrement gérées par le client (CMEK)

Par défaut, Memorystore for Valkey chiffre le contenu client au repos. Memorystore for Valkey 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 bénéficiant d'une intégration des CMEK, y compris Memorystore for Valkey. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Cloud KMS vous permet également de suivre l'utilisation des clés, de 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 les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Memorystore for Valkey est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Qui doit utiliser des CMEK ?

Les CMEK sont destinées aux organisations qui traitent des données sensibles ou réglementées qui doivent être chiffrées. Pour savoir si vous devez utiliser des CMEK pour chiffrer ces données, consultez Déterminer si vous devez utiliser des CMEK.

Chiffrement géré par Google et chiffrement géré par le client

La fonctionnalité CMEK vous permet d'utiliser vos propres clés cryptographiques pour les données au repos dans Memorystore for Valkey. Pour les instances Memorystore for Valkey compatibles avec les CMEK, Google utilise vos clés pour accéder à toutes les données au repos.

Memorystore utilise des clés de chiffrement des données (DEK) et des clés de chiffrement de clé (KEK) gérées par Google pour chiffrer les données dans Memorystore for Valkey. Il existe deux niveaux de chiffrement :

  • Chiffrement DEK : Memorystore utilise des DEK pour chiffrer les données dans Memorystore for Valkey.
  • Chiffrement KEK : Memorystore utilise des KEK pour chiffrer les DEK.

L'instance Memorystore for Valkey stocke la clé DEK chiffrée ainsi que les données chiffrées sur le disque, et Google gère la clé KEK Google. La CMEK est la KEK qui encapsule la DEK. Les CMEK vous permettent de créer, de désactiver ou de détruire, de faire pivoter, et d'activer ou de restaurer la KEK.

Les schémas suivants montrent le fonctionnement du chiffrement des données au repos dans une instance Memorystore for Valkey en cas d'utilisation du chiffrement géré par Google par défaut et en cas d'utilisation des CMEK.

Sans CMEK

Les données sont importées dans Google puis divisées en fragments, et chacun d'entre eux est chiffré avec une clé de chiffrement des données unique. Les clés de chiffrement des données sont encapsulées à l'aide d'une clé de chiffrement de clé. Avec le chiffrement Google par défaut, la clé de chiffrement de clé est extraite du keystore interne de Google. Les fragments chiffrés ainsi que les clés de chiffrement encapsulées sont distribués sur l'ensemble de l'infrastructure de stockage de Google.

Avec CMEK

Les données sont importées dans Google puis divisées en fragments, et chacun d'entre eux est chiffré avec une clé de chiffrement des données unique. Les clés de chiffrement des données sont encapsulées à l'aide d'une clé de chiffrement de clé. Avec CMEK via Cloud KMS, la clé de chiffrement de clé est extraite de Cloud KMS. Les fragments chiffrés ainsi que les clés de chiffrement encapsulées sont distribués sur l'ensemble de l'infrastructure de stockage de Google.

Lors du déchiffrement des données encapsulées avec des CMEK, Memorystore utilise la KEK de Cloud Key Management Service pour déchiffrer la DEK, puis il utilise la DEK non chiffrée pour déchiffrer les données au repos.

Fragment de données chiffré avec la clé DEK et stocké avec la clé DEK encapsulée Une requête de désencapsulation de la DEK est envoyée à Cloud KMS, qui stocke la KEK. Cloud KMS renvoie la clé DEK désencapsulée.

Tarifs

Memorystore for Valkey facture une instance compatible avec les CMEK comme n'importe quelle autre instance. Il n'y a aucun coût supplémentaire. Pour en savoir plus, consultez la page Tarifs de Memorystore for Valkey.

Vous utilisez l'API Cloud KMS pour gérer les CMEK. Lorsque vous créez une instance Memorystore for Valkey avec des CMEK, Memorystore utilise la clé régulièrement pour chiffrer les données.

Cloud KMS vous facture le coût de la clé, ainsi que les opérations de chiffrement et de déchiffrement lorsque Memorystore for Valkey utilise la clé. Pour en savoir plus, consultez la page Tarifs de Cloud KMS.

Quelles données sont chiffrées à l'aide de CMEK ?

Les CMEK chiffrent les types de données client suivants qui sont stockés dans un espace de stockage persistant :

  • Sauvegardes : les sauvegardes vous permettent de récupérer vos données à un moment donné, ainsi que d'exporter et d'analyser des données. Les sauvegardes sont également utiles pour la reprise après sinistre, la migration des données, le partage de données et les scénarios de conformité.
  • Persistance: Memorystore for Valkey est compatible avec deux types de persistance :
    • Persistance RDB : cette fonctionnalité protège vos données en enregistrant des instantanés de vos données dans un espace de stockage durable.
    • Persistance AOF : cette fonctionnalité donne la priorité à la durabilité des données. Elle stocke les données de manière durable en enregistrant chaque commande d'écriture dans un fichier journal appelé fichier AOF (Append-Only File). En cas de défaillance ou de redémarrage du système, le serveur relit les commandes du fichier AOF de manière séquentielle pour restaurer vos données.

À propos des comptes de service

Lorsque vous créez une instance avec des CMEK, vous devez attribuer le rôle cloudkms.cryptoKeyEncrypterDecrypter au compte de service Memorystore for Valkey qui présente le format suivant :

service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com

L'attribution de cette autorisation permet au compte de service de demander un accès aux clés à partir de Cloud KMS.

Pour savoir comment attribuer cette autorisation au compte de service, consultez Accorder au compte de service Memorystore for Valkey l'accès à la clé.

À propos des clés

Dans Cloud KMS, vous devez créer un trousseau de clés avec une clé cryptographique qui utilise un algorithme de chiffrement symétrique . Lorsque vous créez une instance Memorystore for Valkey, vous sélectionnez cette clé pour chiffrer l'instance. Vous pouvez créer un projet pour vos clés et vos instances, ou des projets différents pour chacun d'eux.

Les CMEK sont disponibles dans tous les emplacements d'instances Memorystore for Valkey. Vous devez créer le trousseau de clés et la clé dans la même région que celle où vous souhaitez créer l'instance. Pour une instance multirégionale, vous devez définir le trousseau de clés et la clé sur le même emplacement que l' instance. Si les régions ou les emplacements ne correspondent pas, la requête de création de l'instance échoue.

Pour l'ID de ressource de la clé, les CMEK utilisent le format suivant :

projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Clés externes

Vous pouvez utiliser Cloud External Key Manager (Cloud EKM) pour chiffrer les données dans Google Cloud à l'aide de clés externes que vous gérez.

Lorsque vous utilisez une clé Cloud EKM, Google n'a aucun contrôle sur la disponibilité de votre clé gérée en externe. Si la clé n'est pas disponible lorsque vous créez votre instance, l'instance n'est pas créée.

Pour plus d'informations sur l'utilisation des clés externes, consultez la section Cloud External Key Manager.

Comment rendre les données chiffrées par CMEK définitivement inaccessibles ?

Vous pouvez être amené à rendre définitivement inaccessibles des données chiffrées avec des CMEK. Pour ce faire, vous devez détruire la version de clé. Pour en savoir plus sur la destruction des versions de clé, consultez Détruire et restaurer des versions de clé.

Comportement d'une version de clé CMEK

Cette section fournit des informations sur ce qui se passe lorsque vous désactivez, détruisez, faites pivoter, activez et restaurez une version de clé.

Désactiver ou détruire une version de clé CMEK

Si vous désactivez ou détruisez la version de clé primaire de votre CMEK, les conditions suivantes s'appliquent aux sauvegardes et à la persistance.

Sauvegardes

  • Vous ne pouvez pas créer de sauvegardes à la demande ni de sauvegardes automatiques backups. Toutefois, si vous activez une version de clé plus ancienne, vous pouvez accéder à toutes les sauvegardes que vous avez créées à l'aide de cette version de clé.
  • Vous ne pouvez pas mettre à jour ni réactiver les sauvegardes automatiques tant que vous n'avez pas activé ou restauré la version de clé primaire.

Persistance

  • Si vous configurez votre instance pour qu'elle utilise la persistance, Memorystore for Valkey désactive la fonctionnalité de persistance lorsque la version de clé devient indisponible. Cette fonctionnalité ne vous est plus facturée.
  • Memorystore for Valkey n'envoie pas les nouvelles données vers l'espace de stockage persistant à l'aide de la CMEK.
  • Memorystore for Valkey ne peut pas lire les données existantes présentes dans l'espace de stockage persistant.
  • Vous ne pouvez pas mettre à jour ni réactiver la persistance tant que vous n'avez pas activé ou restauré la version de clé primaire.

Si vous activez la version de clé primaire de votre CMEK, mais que vous désactivez ou détruisez une version de clé plus ancienne, les conditions suivantes s'appliquent aux sauvegardes et à la persistance :

  • Vous pouvez créer des sauvegardes. Toutefois, si une sauvegarde est chiffrée avec une version de clé plus ancienne qui est désactivée ou détruite, la sauvegarde reste inaccessible.
  • Si vous activez la persistance, cette fonctionnalité reste activée. Si l'ancienne version de clé utilisée dans la persistance est désactivée ou détruite, alors Memorystore for Valkey effectue une mise à jour semblable à celle utilisée lors de la maintenance et rechiffre les données avec la version de clé primaire.

Faire pivoter la version de clé CMEK primaire

Si vous faites pivoter la version de clé primaire de votre CMEK et que vous créez une version de clé primaire, les conditions suivantes s'appliquent aux sauvegardes et à la persistance :

  • La dernière version de clé primaire de votre CMEK chiffre les nouvelles sauvegardes.
  • Aucun rechiffrement n'est effectué pour les sauvegardes existantes.
  • Pour la persistance, les nœuds n'effectuent aucune action. Les nœuds continuent d'utiliser l'ancienne version de clé jusqu'au prochain événement de maintenance.

Rechiffrer manuellement les données protégées par CMEK

Memorystore for Valkey n'est pas compatible avec le réencapsulage à la demande des données au repos existantes. Vous ne pouvez pas déclencher manuellement un processus pour utiliser une nouvelle version de clé afin de rechiffrer les sauvegardes existantes ou les fichiers de persistance actifs. Toutefois, vous pouvez utiliser la nouvelle version de clé pour chiffrer les données nouvellement écrites.

Si vous faites pivoter une clé et que vous devez forcer une instance à utiliser la nouvelle version de clé, les conditions suivantes s'appliquent aux sauvegardes et à la persistance :

Sauvegardes

Vous ne pouvez pas réencapsuler les sauvegardes existantes. Si la conformité exige que toutes les données soient chiffrées avec la clé la plus récente, créez une sauvegarde qui utilise cette clé, puis supprimez manuellement les sauvegardes existantes. Vous pouvez également exporter cette sauvegarde vers un bucket Cloud Storage afin que la clé de chiffrement Cloud Storage soit utilisée.

Persistance

Pour forcer l'instance à utiliser une nouvelle clé KMS, vous pouvez exécuter une maintenance simulée sur l'instance. Une fois cette opération terminée, Memorystore for Valkey peut écrire des données de persistance à l'aide de la version de clé primaire mise à jour.

Remplacer une clé KMS protégée

Si vous remplacez une clé KMS protégée par une autre clé KMS ou par une nouvelle version de clé primaire, Memorystore for Valkey n'applique cette modification qu'aux opérations futures.

Le remplacement d'une clé KMS protégée a un impact sur vos ressources de la manière suivante :

  • Sauvegardes : toutes les sauvegardes suivantes sont chiffrées à l'aide de la nouvelle clé KMS. Les sauvegardes existantes conservent leurs clés d'origine.
  • Persistance : la nouvelle clé KMS est utilisée lors du prochain redémarrage de l'instance ou lors d'un événement de maintenance.
  • Cache primaire : le remplacement de cette clé n'a aucun impact. Les CMEK ne chiffrent pas les données en mémoire, car ces données ne sont pas considérées comme des données au repos.

Activer ou restaurer la version de clé CMEK primaire

Si vous activez ou restaurez la version de clé primaire de votre CMEK, les conditions suivantes s'appliquent aux sauvegardes et à la persistance :

  • Vous pouvez à nouveau créer des sauvegardes à la demande et automatiques.
  • Memorystore for Valkey effectue une mise à jour semblable à celle utilisée lors de la maintenance et réactive la persistance.

Limites

Les limites suivantes s'appliquent lorsque vous utilisez des CMEK avec Memorystore for Valkey :

  • Vous ne pouvez pas activer les CMEK sur une instance Memorystore for Valkey existante.
  • La clé, le trousseau de clés et l'instance doivent se trouver dans la même région.
  • Vous devez utiliser l'algorithme de chiffrement symétrique pour votre clé.
  • Les taux de chiffrement et de déchiffrement de Cloud KMS sont soumis à un quota.

À propos des contraintes de règles d'administration CMEK

Memorystore for Valkey est compatible avec les contraintes de règles d'administration pour les CMEK. En utilisant ces contraintes, vous pouvez appliquer la protection CMEK à vos instances et limiter les clés Cloud KMS que vous pouvez utiliser pour cette protection.

Vous pouvez configurer les contraintes de règles d'administration suivantes :

  • constraints/gcp.restrictNonCmekServices: utilisez cette contrainte pour appliquer la protection CMEK à vos instances. Si l'API Memorystore for Valkey figure dans la liste des services Deny de cette contrainte, vous ne pouvez pas créer d'instances non protégées par CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects: utilisez cette contrainte pour limiter les clés Cloud KMS que vous pouvez utiliser pour la protection CMEK. Si vous configurez cette contrainte, les instances qui utilisent le chiffrement CMEK doivent utiliser une clé provenant d'un projet, d'un dossier ou d'une organisation autorisée.