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 vous disposez du rôle d'administrateur Memorystore sur votre compte utilisateur.

    Accéder à la page IAM

Procédure permettant de créer une instance utilisant les CMEK

  1. Créez un trousseau de clés et une clé à l'emplacement où vous souhaitez que l'instance Memorystore pour Valkey se trouve.

  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 pour Valkey l'accès à la clé.

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

Votre instance Memorystore pour Valkey est désormais activée 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 instance Memorystore pour Valkey. 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 pour Valkey l'accès à la clé

Avant de pouvoir créer une instance Memorystore pour Valkey qui utilise CMEK, vous devez accorder à un compte de service Memorystore pour Valkey 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@gcp-sa-memorystore.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@gcp-sa-memorystore.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 une instance Memorystore pour Valkey qui utilise une clé CMEK

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

gcloud

Pour créer une instance qui utilise CMEK, utilisez la commande gcloud memorystore instances create.

gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_NAME/global/networks/NETWORK_ID", "projectId": "PROJECT_NAME"}}]}]' \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-config-mode=PERSISTENCE_CONFIG_MODE

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance que vous créez.
  • PROJECT_NAME : nom du projet dans lequel vous souhaitez créer l'instance.
  • REGION_ID : ID de la région dans laquelle vous souhaitez placer l'instance.
  • NETWORK_ID : ID du réseau que vous souhaitez utiliser pour créer l'instance.
  • 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 l'instance.
  • PERSISTENCE_CONFIG_MODE : mode de persistance de l'instance. 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 l'instance.
    • disabled : vous désactivez la persistance pour l'instance.
    • rdb : vous activez la persistance basée sur la base de données Redis (RDB) pour l'instance.

Afficher les informations sur les clés d'une instance configurée pour utiliser les CMEK

Vous pouvez afficher des informations sur votre instance compatible avec les CMEK à l'aide de la gcloud CLI. Ces informations incluent l'état de l'activation de CMEK pour votre instance 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 memorystore instances describe pour afficher les champs encryptionInfo et kmsKey.

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez afficher des informations
  • PROJECT_NAME : nom du projet contenant l'instance
  • REGION_ID : ID de la région où se trouve l'instance

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