Par défaut, Memorystore pour Redis chiffre le contenu client au repos. Memorystore pour Redis gère le chiffrement pour vous sans que vous ayez à effectuer d'actions supplémentaires. 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 pour Redis. 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. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et 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 pour Redis 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 les 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 les CMEK pour chiffrer ces données, consultez Déterminer si vous devez utiliser les 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 pour Redis. Pour les instances Memorystore pour Redis 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, Data Encryption Key) et des clés de chiffrement de clé (KEK, Key Encryption Key) gérées par Google pour chiffrer les données dans Memorystore pour Redis. Il existe deux niveaux de chiffrement :
- Chiffrement DEK : Memorystore utilise des DEK pour chiffrer les données dans Memorystore pour Redis.
- Chiffrement KEK : Memorystore utilise des KEK pour chiffrer les DEK.
L'instance Memorystore pour Redis stocke la clé DEK chiffrée ainsi que les données chiffrées sur le disque persistant, 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, et d'activer ou de restaurer la KEK.
Vous gérez les CMEK à l'aide de l'API Cloud Key Management Service.
Les schémas suivants montrent le fonctionnement du chiffrement des données au repos dans une instance Memorystore pour Redis en cas d'utilisation du chiffrement géré par Google par défaut et en cas d'utilisation des CMEK.
Sans CMEK
Avec CMEK
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.

Tarifs
Memorystore pour Redis facture une instance compatible avec les CMEK comme n'importe quelle autre instance. Il n'y a pas de frais supplémentaires. Pour en savoir plus, consultez Tarifs de Memorystore pour Redis.
Vous utilisez l'API Cloud KMS pour gérer les CMEK. Lorsque vous créez une instance Memorystore pour Redis 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 pour Redis utilise la clé. Pour en savoir plus, consultez Tarifs de Cloud KMS.
Quand Memorystore interagit-il avec les CMEK ?
| Opération | Description |
|---|---|
| Création d'une instance | Lorsque vous créez une instance, vous la configurez pour qu'elle utilise les CMEK. |
| Mise à jour de l'instance | Lors de la mise à jour d'une instance pour laquelle les CMEK sont activées, Memorystore pour Redis vérifie les CMEK. |
Quelles données sont chiffrées à l'aide des CMEK ?
Les CMEK chiffrent les types de données suivants :
- Les données client stockées dans un espace de 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 des CMEK, vous devez accorder 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'octroi de cette autorisation permet au compte de service de demander un accès aux clés à partir de Cloud KMS.
Pour savoir comment accorder cette autorisation au compte de service, consultez 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 de clés 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.
Les CMEK sont disponibles dans tous les emplacements d'instance Memorystore pour Redis. 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. 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é, les CMEK utilisent 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é), Memorystore pour Redis 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 reprend automatiquement l'instance.
Clés externes
Vous pouvez utiliser Cloud External Key Manager (Cloud EKM) pour chiffrer les données à l'aide de clés externes que vous gérez. Google Cloud
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 avec des CMEK définitivement inaccessibles ?
Il peut arriver que vous souhaitiez rendre des données chiffrées avec des 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 Détruire et restaurer des versions de clé.
Comment importer ou exporter des données pour une instance compatible avec les CMEK ?
Si vous souhaitez que vos données restent chiffrées avec une CMEK lorsque vous les exportez, vous devez définir une 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 les 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 pivoter, activez et restaurez une version de clé.
Désactiver ou détruire une version de clé CMEK
Si vous souhaitez vous assurer qu'aucune donnée n'est accessible à votre instance, désactivez la version de clé primaire de votre CMEK. Cela arrête votre instance. De plus, si une 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é antérieure 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.
Activer ou restaurer la version de clé CMEK primaire
Si vous activez ou restaurez la version de clé primaire de votre CMEK, Memorystore pour Redis ne masque plus votre instance.
Limites
Les limites suivantes s'appliquent lorsque vous utilisez des CMEK avec Memorystore pour Redis :
- Vous ne pouvez pas activer les CMEK sur une instance Memorystore pour Redis 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 des règles d'administration CMEK
Memorystore pour Redis est compatible avec les contraintes des 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ègle 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 services de la règleDenypour cette contrainte, vous ne pouvez pas créer d'instances non protégées par des 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.