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

En utilisant des clés de chiffrement gérées par le client (CMEK), vous contrôlez vos clés. Cela 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. 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 Key Management Service (KMS).

Avant de commencer

  1. Assurez-vous que le rôle d'administrateur Redis est attribué à votre compte utilisateur.

    Accéder à la page IAM

Procédure permettant de créer un cluster utilisant CMEK

  1. Créez un trousseau de clés et une clé à l'emplacement où vous souhaitez que le cluster se trouve dans Memorystore pour Redis Cluster.

  2. Copiez ou notez le nom de la clé (KEY_NAME), son emplacement et le nom du trousseau de clés (KEY_RING). Vous aurez besoin de ces informations lorsque vous accorderez à la clé l'accès au compte de service.

  3. Accordez au compte de service Memorystore for Redis Cluster l'accès à la clé.

  4. Accédez à un projet et créez un cluster dans Memorystore pour Redis Cluster avec CMEK activé dans la même région que le trousseau de clés et la clé.

Votre cluster est désormais activé avec CMEK.

Créer un trousseau de clés et une clé

Créez un trousseau de clés et une clé. Les deux doivent se trouver dans la même région que votre cluster dans Memorystore pour Redis Cluster. La clé peut provenir d'un autre projet, à condition qu'elle se trouve dans la même région. De plus, la clé doit utiliser l'algorithme de chiffrement symétrique.

Une fois le trousseau de clés et la clé créés, copiez ou notez le KEY_NAME, l'emplacement de la clé et le KEY_RING. Vous avez besoin de ces informations lorsque vous accordez à la clé l'accès au compte de service.

Accorder au compte de service Memorystore for Redis Cluster l'accès à la clé

Avant de pouvoir créer un cluster dans Memorystore pour Redis Cluster qui utilise CMEK, vous devez accorder à un compte de service Memorystore pour Redis Cluster spécifique l'accès à la clé.

Vous pouvez accorder au compte de service l'accès à la clé à l'aide de la gcloud CLI. Pour accorder l'accès au compte de service, utilisez le format suivant :

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

gcloud

Pour accorder au compte de service l'accès à la clé, utilisez la commande gcloud kms keys add-iam-policy-binding.

gcloud kms keys add-iam-policy-binding  \
projects/PROJECT_ID/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Effectuez les remplacements suivants :

  • PROJECT_ID : ID ou numéro du projet contenant le trousseau de clés
  • REGION_ID : région où se trouve le trousseau de clés.
  • KEY_RING : nom du trousseau de clés qui inclut la clé
  • KEY_NAME : nom de la clé à laquelle vous accordez l'accès au compte de service.
  • PROJECT_NUMBER : ID ou numéro du projet contenant le compte de service

Créer un cluster utilisant CMEK

Vous pouvez créer un cluster qui utilise CMEK à l'aide de la gcloud CLI.

gcloud

Pour créer un cluster qui utilise CMEK, utilisez la commande gcloud redis clusters create.

gcloud redis clusters create CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID \
--network=NETWORK_ID \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-mode=PERSISTENCE_MODE

Effectuez les remplacements suivants :

  • CLUSTER_ID : ID du cluster que vous créez.
  • PROJECT_NAME : nom du projet dans lequel vous souhaitez créer le cluster.
  • REGION_ID : ID de la région dans laquelle vous souhaitez que le cluster soit situé.
  • NETWORK_ID : ID du réseau que vous souhaitez utiliser pour créer le cluster.
  • KEY_RING : nom du trousseau de clés qui inclut la clé
  • KEY_NAME : nom de la clé.
  • SHARD_NUMBER : nombre de partitions que vous souhaitez pour le cluster.
  • PERSISTENCE_MODE : mode de persistance du cluster. Vous pouvez définir ce mode sur l'une des valeurs suivantes :
    • aof : vous activez la persistance basée sur le fichier AOF (Append-Only File) pour le cluster.
    • disabled : vous désactivez la persistance pour le cluster.
    • rdb : vous activez la persistance basée sur la base de données Redis (RDB) pour le cluster.

Afficher les informations sur les clés d'un cluster configuré pour utiliser les CMEK

Vous pouvez afficher des informations sur votre cluster compatible avec CMEK à l'aide de la gcloud CLI. Ces informations incluent l'état de CMEK pour votre cluster et la clé active.

gcloud

Pour vérifier si CMEK est activé et afficher la référence de la clé, utilisez la commande gcloud redis clusters describe pour afficher les champs encryptionInfo et kmsKey.

gcloud redis clusters describe CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID

Effectuez les remplacements suivants :

  • CLUSTER_ID : ID du cluster pour lequel vous souhaitez afficher des informations
  • PROJECT_NAME : nom du projet contenant le cluster.
  • REGION_ID : ID de la région dans laquelle se trouve le cluster.

Gérer les versions de clé

Pour savoir ce qui se passe lorsque vous désactivez, détruisez, faites pivoter, activez ou restaurez une version de clé, consultez Comportement d'une version de clé CMEK.

Pour savoir comment désactiver et réactiver des versions de clé, consultez Activer et désactiver des versions de clé.

Pour savoir comment détruire et restaurer des versions de clé, consultez Détruire et restaurer des versions de clé.

Étapes suivantes