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

Cette page décrit le fonctionnement des clés de chiffrement gérées par le client (CMEK) avec Memorystore pour Redis Cluster. Pour commencer à utiliser cette fonctionnalité, consultez Utiliser des clés de chiffrement gérées par le client (CMEK).

Par défaut, Memorystore for Redis Cluster chiffre le contenu client au repos. Memorystore pour Redis Cluster 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 pour Redis Cluster. 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 Cluster 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 s'adresse CMEK ?

La fonctionnalité CMEK est destinée aux organisations qui traitent des données sensibles ou réglementées qui doivent être chiffrées. Pour savoir si vous devez utiliser CMEK pour chiffrer ces données, consultez Choisir d'utiliser ou non CMEK.

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

La fonctionnalité CMEK vous permet d'utiliser vos propres clés de chiffrement pour les données au repos dans Memorystore pour Redis Cluster. Pour les instances Memorystore for Redis Cluster pour lesquelles CMEK est activé, 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 Cluster. Il existe deux niveaux de chiffrement :

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

L'instance Memorystore pour Redis Cluster 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 clé CMEK est la clé KEK qui encapsule la clé 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 clé KEK.

Les schémas suivants montrent le fonctionnement du chiffrement des données au repos dans une instance Memorystore pour Redis Cluster en cas d'utilisation du chiffrement par défaut géré par Google 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 une clé CMEK, Memorystore utilise la clé KEK de Cloud Key Management Service pour déchiffrer la clé DEK, puis il utilise la clé 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 Redis Cluster facture les clusters compatibles CMEK comme n'importe quel autre cluster. Il n'y a pas de frais supplémentaires. Pour en savoir plus, consultez la page Tarifs de Memorystore pour Redis Cluster.

Vous utilisez l'API Cloud KMS pour gérer CMEK. Lorsque vous créez une instance Memorystore pour Redis Cluster avec CMEK, Memorystore utilise la clé périodiquement 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 Cluster utilise la clé. Pour en savoir plus, consultez la page Tarifs de Cloud KMS.

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

Le chiffrement CMEK chiffre les types de données client suivants stockés dans un espace de stockage persistant :

  • Sauvegardes : les sauvegardes vous permettent de récupérer vos données à un moment précis, et d'exporter et d'analyser des données. Les sauvegardes sont également utiles pour la reprise après sinistre, la migration de données, le partage de données et les scénarios de conformité.
  • Persistance : Memorystore for Redis Cluster est compatible avec deux types de persistance :
    • Persistance RDB : la fonctionnalité de base de données Redis (RDB) 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. Il 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 CMEK, vous devez attribuer le rôle cloudkms.cryptoKeyEncrypterDecrypter au compte de service Memorystore pour Redis Cluster, qui présente le format suivant :

  service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
  

Cette autorisation permet au compte de service de demander l'accès aux clés à Cloud KMS.

Pour savoir comment accorder cette autorisation au compte de service, consultez Accorder l'accès à la clé au compte de service Memorystore pour Redis Cluster.

À 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 Cluster, vous sélectionnez cette clé pour chiffrer l'instance. Vous pouvez créer un projet unique pour vos clés et vos instances, ou un projet distinct pour chaque élément.

CMEK est disponible dans tous les emplacements d'instances Memorystore for Redis Cluster. 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é, CMEK utilise 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 dansGoogle 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 ?

Vous pouvez être amené à détruire définitivement des données chiffrées avec CMEK. Pour ce faire, détruisez 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 explique ce qui se passe lorsque vous désactivez, détruisez, faites pivoter, activez ou restaurez une version de clé.

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

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

Sauvegardes

  • Vous ne pouvez pas créer de sauvegardes à la demande ni automatiques. Toutefois, si vous activez une ancienne version de clé, 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 principale de la clé.

Persistance

  • Si vous configurez votre instance pour qu'elle utilise la persistance, Memorystore pour Redis Cluster désactive cette fonctionnalité lorsque la version de la clé devient indisponible. Vous n'êtes plus facturé pour cette fonctionnalité.
  • Memorystore pour Redis Cluster ne vide pas les nouvelles données dans le stockage persistant à l'aide de CMEK.
  • Memorystore pour Redis Cluster ne peut pas lire les données existantes présentes dans le 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 principale de votre clé CMEK, mais que vous désactivez ou détruisez une ancienne version de clé, 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, elle 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, Memorystore pour Redis Cluster effectue une mise à jour semblable à celle utilisée lors de la maintenance et rechiffre les données avec la version de clé principale.

Faire pivoter la version principale de la clé CMEK

Si vous effectuez une rotation de la version principale de votre clé CMEK et que vous en créez une autre, 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.

Activer ou restaurer la version principale de la clé CMEK

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

  • Vous pouvez à nouveau créer des sauvegardes à la demande et automatiques.
  • Memorystore pour Redis Cluster 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 CMEK avec Memorystore pour Redis Cluster :

  • Vous ne pouvez pas activer CMEK sur une instance Memorystore for Redis Cluster existante.
  • La région de la clé, du trousseau de clés et de l'instance doit être identique.
  • 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.