Ce document explique comment utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud Key Management Service (Cloud KMS) pour vos instances Memorystore pour Redis. Il décrit également les données chiffrées dans le stockage persistant et le comportement de vos instances lors des événements liés au cycle de vie des clés.
Le chiffrement CMEK vous permet de contrôler les clés cryptographiques qui protègent vos données stockées. En gérant vos propres clés dans Cloud KMS, vous bénéficiez d'un meilleur contrôle sur l'accès, la rotation et l'utilisation des clés, ce qui vous aide à respecter des exigences strictes en matière de conformité et de réglementation.
L'implémentation du chiffrement CMEK offre une couche supplémentaire de sécurité et de contrôle sur vos données persistantes, telles que les sauvegardes et les fichiers de persistance. Vous ne pouvez activer le chiffrement CMEK que sur de nouvelles instances. Vous ne pouvez pas l'appliquer à des instances existantes.
À qui s'adresse le chiffrement CMEK ?
Le chiffrement CMEK est destiné aux organisations qui traitent des données sensibles ou réglementées et qui doivent contrôler leurs propres clés de chiffrement. Pour savoir si vous devez utiliser le chiffrement CMEK pour chiffrer ces données, consultez la section Déterminer si vous devez utiliser le chiffrement CMEK.
Chiffrement géré par le client
Le chiffrement CMEK vous permet d'utiliser vos clés cryptographiques pour protéger les données stockées dans les instances. Pour chiffrer ces données, Memorystore pour Redis utilise des clés de chiffrement des données (DEK, Data Encryption Key) gérées par Google et des clés de chiffrement de clé (KEK, Key Encryption Key) gérées par le client.
Vous pouvez choisir parmi les niveaux de chiffrement suivants :
- Chiffrement DEK : les DEK chiffrent les données dans Memorystore pour Redis.
- Chiffrement KEK : les KEK chiffrent les DEK.
Memorystore pour Redis utilise des KEK pour chiffrer les DEK, et des DEK pour chiffrer les données stockées. Si vous utilisez le chiffrement CMEK, vous pouvez gérer les KEK qui chiffrent les DEK dans votre instance.
Le schéma suivant montre comment une instance utilise le chiffrement CMEK pour chiffrer les données. Les données importées dans l'infrastructure de stockage de Google sont divisées en fragments, et chacun d'eux est chiffré avec sa propre DEK. Cloud KMS fournit la KEK pour chiffrer les DEK, et l'infrastructure de stockage de Google distribue les fragments de données chiffrés et les DEK chiffrées dans le système.

Le schéma suivant montre comment Memorystore pour Redis déchiffre les données chiffrées avec le chiffrement CMEK. Pour accéder à ces données chiffrées, Memorystore pour Redis envoie une requête à Cloud KMS, qui gère la KEK, afin de déchiffrer la DEK. Cloud KMS renvoie ensuite la DEK déchiffrée, que l'instance utilise pour déchiffrer les données stockées.

Quand Memorystore interagit-il avec le chiffrement CMEK ?
| Opération | Description |
|---|---|
| Création d'une instance | Lorsque vous créez une instance, vous la configurez pour qu'elle utilise le chiffrement CMEK. |
| Mise à jour de l'instance | Lors de la mise à jour d'une instance pour laquelle le chiffrement CMEK est activé, Memorystore pour Redis vérifie la clé CMEK. |
Quelles données sont chiffrées à l'aide du chiffrement CMEK ?
Le chiffrement CMEK chiffre les types de données suivants :
- Les données client stockées dans le stockage persistant.
- Les métadonnées liées aux fonctionnalités de sécurité telles que AUTH et le chiffrement en transit.
À propos des comptes de service
Lorsque vous créez une instance avec le chiffrement CMEK, vous devez attribuer le rôle cloudkms.cryptoKeyEncrypterDecrypter au compte de service Memorystore pour Redis, qui présente le format suivant :
service-PROJECT_NUMBER@cloud-redis.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 la section Accorder au compte de service Memorystore pour Redis l'accès à la clé.
À propos des clés
Dans Cloud KMS, vous devez créer un trousseau avec une clé cryptographique qui utilise un algorithme de chiffrement symétrique. Lorsque vous créez une instance Memorystore pour Redis, 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 chacune d'elles.
Le chiffrement CMEK est disponible dans tous les emplacements d'instances Memorystore pour Redis. Vous devez créer le trousseau et la clé dans la même région que celle où vous souhaitez créer l'instance. Une clé pour une région multirégionale ou mondiale ne fonctionne pas. 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é, le chiffrement CMEK utilise le format suivant :
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Si Memorystore pour Redis ne peut accéder à aucune version de clé utilisée (par exemple, si vous désactivez toutes les versions de clé), il arrête l'instance. Dans la Google Cloud console, une instance suspendue affiche une info-bulle avec un point d'exclamation rouge
sur la page Instances. Si vous pointez sur l'info-bulle, l'état No state s'affiche. Une fois la clé accessible, Memorystore pour Redis réactive automatiquement l'instance.
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, celle-ci 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 ?
Dans certains cas, vous pouvez souhaiter rendre les données chiffrées par CMEK définitivement inaccessibles. Pour ce faire, vous devez détruire la version de clé. Pour en savoir plus sur la destruction des versions de clé, consultez la section Détruire et restaurer des versions de clé.
Comment importer ou exporter des données pour une instance compatible avec le chiffrement CMEK ?
Si vous souhaitez que vos données restent chiffrées avec une clé CMEK lorsque vous les exportez, vous devez définir une clé CMEK sur le bucket Cloud Storage avant d'y exporter des données.
Si vos données sont stockées sur une instance compatible avec le chiffrement CMEK, il n'existe pas d'exigences ni de restrictions particulières concernant l'importation de données dans une nouvelle instance.
Comportement d'une version de clé CMEK
Cette section fournit des informations sur ce qui se passe lorsque vous désactivez, détruisez, faites alterner, activez et restaurez une version de clé.
Désactiver ou détruire une version de clé CMEK
Si vous souhaitez vous assurer qu'aucun accès aux données n'est possible pour votre instance, désactivez votre version de clé primaire. Cela arrête votre instance. De même, si une clé CMEK en cours d'utilisation est désactivée ou détruite, Memorystore pour Redis arrête l'instance. Cela inclut toute version de clé plus ancienne utilisée par l'instance.
Pour voir si Memorystore pour Redis suspend votre instance, utilisez l'une des interfaces suivantes :
- Google Cloud Console : sur la page Instances, une info-bulle avec un point d'exclamation rouge
s'affiche à côté de votre instance. Si vous pointez sur l'info-bulle, l'état
No states'affiche. - gcloud CLI : utilisez la commande
gcloud redis instances describe. Vérifiez que vous ne voyez passtate: READY,state: REPAIRINGni aucun autre état dans les métadonnées de l'instance.
Rechiffrer manuellement les données protégées par CMEK
Memorystore pour Redis 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.
Remplacer une clé KMS protégée
Si vous remplacez une clé KMS protégée par une autre clé KMS ou une nouvelle version de clé primaire, Memorystore pour Redis 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 : Memorystore pour Redis exporte les sauvegardes vers des buckets Cloud Storage. La clé de chiffrement Cloud Storage contrôle la clé utilisée pour chiffrer les données.
- Persistance : la prochaine fois que l'instance redémarre ou qu'un événement de maintenance se produit, la nouvelle clé KMS est utilisée.
- Cache principal : le remplacement de cette clé n'a aucun impact. Le chiffrement CMEK ne chiffre pas les données en mémoire, car elles ne sont pas considérées comme des données au repos.
Activer ou restaurer la version de clé CMEK principale
Si vous activez ou restaurez votre version de clé primaire, Memorystore pour Redis ne masque plus votre instance.
Contraintes liées aux règles d'administration
Memorystore pour Redis est compatible avec les contraintes liées aux règles d'administration pour le chiffrement 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 liées aux règles d'administration suivantes :
constraints/gcp.restrictNonCmekServices: utilisez cette contrainte pour appliquer la protection CMEK à vos instances. Si l'API Memorystore pour Redis figure dans la liste des servicesDenyde 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.
Étant donné que Memorystore pour Redis et Memorystore for Redis Cluster
partagent le même point de terminaison (redis.googleapis.com), vous ne pouvez pas appliquer le chiffrement CMEK aux
instances indépendamment des clusters dans Memorystore for Redis Cluster.
Pour en savoir plus sur les contraintes liées aux règles d'administration associées au chiffrement CMEK que Google gère pour Memorystore pour Redis, consultez la section Contraintes liées aux règles d'administration.
Tarifs
Memorystore pour Redis facture une instance compatible avec le chiffrement CMEK comme n'importe quelle autre instance. Il n'y a pas de frais supplémentaires. Pour en savoir plus, consultez la page Tarifs de Memorystore pour Redis.
Vous utilisez l'API Cloud KMS pour gérer le chiffrement CMEK. Lorsque vous créez une instance avec le chiffrement 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 pour Redis utilise la clé. Pour en savoir plus, consultez la page Tarifs de Cloud KMS.
Limites
Les limites suivantes s'appliquent lorsque vous utilisez le chiffrement CMEK avec Memorystore pour Redis :
- Vous ne pouvez pas activer le chiffrement CMEK sur une instance 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.
Étape suivante
- En savoir plus sur le CMEK.
- Découvrez comment renforcer la sécurité des données à l'aide du chiffrement CMEK.
- En savoir plus sur les sauvegardes.
- En savoir plus sur la persistance.