Sécuriser vos données à l'aide d'une autorité de certification (AC) gérée par le client

Vous pouvez chiffrer de manière sécurisée toutes les données qui transitent entre vos applications clientes et Memorystore pour Valkey. Il s'agit du chiffrement en transit. En utilisant le chiffrement en transit, tout le trafic Valkey est chiffré à l'aide du protocole TLS (Transport Layer Security). Cela garantit que toutes les données qui transitent entre vos applications et Memorystore pour Valkey restent confidentielles et intactes.

Lorsque le chiffrement en transit est activé, les clients Valkey communiquent exclusivement via une connexion sécurisée. Les clients Valkey qui ne sont pas configurés pour TLS sont bloqués. Si vous choisissez d'utiliser le chiffrement en transit, il vous incombe de vous assurer que votre client Valkey peut utiliser le protocole TLS.

Les instances qui utilisent le chiffrement en transit disposent d'autorités de certification (CA). Vous utilisez les autorités de certification pour authentifier les certificats des machines de vos instances.

Vous pouvez utiliser une autorité de certification gérée par le client. Vous pouvez utiliser des CA gérées par le client pour vos instances Memorystore pour Valkey. Si vous devez gérer vos propres autorités de certification pour des raisons de conformité, vous pouvez utiliser ce mode d'autorité de certification. Pour utiliser ce mode, vous devez configurer votre propre pool d'autorités de certification (CA) hébergé sur Certificate Authority Service.

Avant de pouvoir configurer une instance pour qu'elle utilise des autorités de certification gérées par le client, vous devez créer un pool d'autorités de certification dans la même région que votre instance, ainsi qu'au moins une autorité de certification dans ce pool à l'aide du service CA. L'autorité de certification peut être une autorité de certification racine ou une autorité de certification subordonnée. Vous pouvez également créer une autorité de certification subordonnée dans CA Service, puis la relier à une autorité de certification racine externe.

Lorsque vous créez votre instance, vous spécifiez le pool d'autorités de certification. Dans le cadre de cette configuration, le compte de service Memorystore pour Valkey spécifique au projet est autorisé à utiliser le pool d'autorités de certification. Le compte de service demande une autorité de certification au pool, et Memorystore pour Valkey utilise cette autorité de certification pour signer le certificat de serveur de l'instance.

Avant de commencer

Avant d'utiliser le mode CA géré par le client, assurez-vous de remplir les conditions suivantes.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer un pool d'autorités de certification et une autorité de certification, demandez à votre administrateur de vous accorder le rôle IAM "Responsable des opérations du service d'autorité de certification" (roles/privateca.caManager) sur le service d'autorité de certification.

Vous pouvez également obtenir les autorisations requises grâce aux rôles personnalisés ou à d'autres rôles prédéfinis. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Workflow pour utiliser une autorité de certification gérée par le client

Pour utiliser une autorité de certification gérée par le client, le workflow est le suivant :

  1. Créez un pool d'autorités de certification. Avant de pouvoir configurer une instance pour qu'elle utilise une autorité de certification gérée par le client, vous devez créer un pool d'autorités de certification dans le service CA. Ce pool doit se trouver dans la même région que votre instance.
  2. Créez une autorité de certification dans le pool d'autorités de certification. Après avoir créé le pool d'autorités de certification, vous devez utiliser le service CA pour créer au moins une autorité de certification dans le pool.
  3. Déléguez l'autorisation au compte de service Memorystore pour Valkey afin d'émettre des certificats de serveur avec des autorités de certification provenant du pool d'autorités de certification que vous créez.
  4. Créez une instance pour utiliser l'autorité de certification gérée par le client.

Créer un pool d'autorités de certification

Vous pouvez créer un pool de CA dans le service de CA, dans le même projet que celui dans lequel vous prévoyez de créer vos instances Memorystore pour Valkey, ou dans un autre projet. Toutefois, si vous créez le pool d'autorité de certification dans un autre projet, VPC Service Controls peut vous empêcher de créer des instances, en fonction des règles d'administration de votre organisation. Pour résoudre le problème, assurez-vous que le projet qui héberge le pool d'autorité de certification et l'autorité de certification, ainsi que le projet qui héberge Memorystore pour Valkey appartiennent au même périmètre de service. Pour en savoir plus, consultez Périmètres de service : détails et configuration et Gérer les périmètres de service.

Pour créer un pool d'autorités de certification, suivez les instructions de la section Créer un pool d'autorités de certification. Vous pouvez accepter les valeurs par défaut pour le pool d'AC, avec les paramètres de configuration requis suivants :

  • Créez le pool d'autorités de certification dans la même région que celle où vous prévoyez de créer votre instance. Pour obtenir la liste des régions compatibles avec Memorystore pour Valkey, consultez Emplacements Memorystore pour Valkey.
  • Autoriser les demandes de certificat basées sur la configuration.
  • Autoriser les noms DNS dans les autres noms de l'objet (SAN). Lorsque vous configurez les contraintes d'identité du pool d'autorité de certification, ne définissez aucune restriction sur le format des noms DNS qui pourraient entrer en conflit avec ce que Memorystore pour Valkey pourrait ajouter au SAN.

Créer une autorité de certification dans le pool d'autorités de certification

Créez au moins une autorité de certification dans le pool d'autorités de certification que vous avez créé.

Vous pouvez créer une autorité de certification racine ou subordonnée.

Pour créer une autorité de certification racine, suivez les instructions de la section Créer une autorité de certification racine. Vous pouvez accepter les valeurs par défaut pour l'autorité de certification, mais assurez-vous de la créer à l'état Activée.

Lorsque vous configurez l'algorithme et la taille de clé de l'autorité de certification, vous pouvez sélectionner n'importe quelle taille de clé et n'importe quel algorithme.

Si vous créez une autorité de certification subordonnée, vous devez d'abord créer et configurer votre autorité de certification racine.

Accorder au compte de service l'accès au pool d'autorités de certification

Pour vous assurer que votre compte de service Memorystore pour Valkey est autorisé à demander et à signer des certificats pour vos instances, accordez-lui le rôle roles/privateca.certificateRequester pour le pool d'autorités de certification que vous avez créé.

Ce compte de service est au format suivant :
service-PROJECT_NUMBER@cloud-memorystore.iam.gserviceaccount.com. Remplacez PROJECT_NUMBER par le numéro de votre projet Google Cloud .

gcloud

Pour accorder au compte de service l'accès au pool d'AC, utilisez la commande gcloud privateca pools add-iam-policy-binding.

gcloud privateca pools add-iam-policy-binding CA_POOL_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--member serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/privateca.certificateRequester

Effectuez les remplacements suivants :

  • CA_POOL_ID : ID du pool d'autorités de certification que vous avez créé.
  • PROJECT_ID : ID du projet Google Cloud dans lequel vous souhaitez créer vos instances.
  • REGION_ID : région où se trouve le pool d'autorités de certification.
  • SERVICE_ACCOUNT_NAME : nom du compte de service Memorystore pour Valkey. Le numéro de projet de ce compte de service est le même que celui associé à PROJECT_ID.

Créer une instance qui utilise une CA gérée par le client

Console

Suivez la procédure Créer des instances.

gcloud

Pour créer une instance qui utilise une autorité de certification gérée par le client, exécutez la commande gcloud memorystore instances create.

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/CA_POOL_PROJECT_ID/locations/REGION_ID/caPools/CA_POOL_ID"

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance que vous créez. L'ID d'instance doit comporter entre 1 et 63 caractères, et n'utiliser que des lettres minuscules, des chiffres ou des traits d'union. Il doit commencer par une lettre minuscule et se terminer par une lettre minuscule ou un chiffre.

  • REGION_ID : région dans laquelle vous souhaitez placer l'instance. Vous devez créer votre instance dans la même région que le pool d'autorités de certification que vous avez créé.

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer l'instance.

  • NETWORK_ID : ID du réseau que vous souhaitez utiliser pour créer l'instance.

  • REPLICA_COUNT : nombre de réplicas (par segment). Les valeurs acceptées sont 0-5.

  • NODE_TYPE : type de nœud. Les valeurs acceptées sont les suivantes :

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT : nombre de partitions dans l'instance. Le nombre de shards détermine la capacité de mémoire totale pour stocker les données d'instance. Pour en savoir plus sur les spécifications des instances, consultez Spécifications des instances et des nœuds.

  • ENGINE_VERSION : version de l'instance. Les valeurs acceptées pour ce paramètre sont VALKEY_7_2, VALKEY_8_0 et VALKEY_9_0. Si vous ne spécifiez pas de valeur, la valeur par défaut est VALKEY_9_0.

  • MODE : détermine si le mode cluster est activé ou désactivé pour l'instance. Si ce champ est omis, l'instance est définie par défaut sur "Mode cluster activé". Pour en savoir plus, consultez Activer et désactiver le mode cluster.

  • CA_POOL_PROJECT_ID : ID du pool d'autorités de certification que vous avez créé.

  • REGION_ID : région où se trouve le pool d'autorités de certification. L'instance que vous créez et le pool d'autorités de certification doivent se trouver dans la même région.

  • CA_POOL_ID : ID du pool d'autorités de certification que vous avez créé.

Le paramètre server-ca-mode représente le mode CA pour l'instance. Pour une CA gérée par le client, customer-managed-cas-ca est la valeur du paramètre. Si vous n'utilisez pas ce paramètre, le mode AC par défaut est "par instance".

Exemple :

gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/my-CA-pool-project/locations/us-central1/caPools/my-CA-pool"

Effectuer la rotation des certificats de serveur de l'instance

En plus de la rotation hebdomadaire des certificats côté serveur effectuée par Memorystore for Valkey, vous pouvez faire tourner les certificats à la demande.

gcloud

Pour effectuer la rotation des certificats de serveur pour toutes les machines d'une instance, utilisez la commande gcloud memorystore instances update.

gcloud memorystore instances update INSTANCE_ID \
--location=REGION_ID \
--rotate-server-certificate

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance contenant les machines pour lesquelles vous souhaitez faire pivoter les certificats de serveur
  • REGION_ID : région où se trouve l'instance

Exemple :

gcloud memorystore instances update my-instance \
--location=us-central1 \
--rotate-server-certificate

Limites

Les limites suivantes s'appliquent lorsque vous utilisez des CA gérées par le client avec Memorystore pour Valkey :

  • Une fois que vous avez configuré une CA gérée par le client pour une instance, vous ne pouvez plus modifier la configuration. Par exemple, vous ne pouvez pas modifier l'ID du pool d'autorité de certification pour l'instance.
  • Ne supprimez pas le pool d'AC géré par le client ni ne révoquez les autorisations du compte de service associées à l'AC. Si vous le faites, les certificats de serveur ne pourront pas être renouvelés et expireront. Par conséquent, vos applications clientes ne pourront pas se connecter à l'instance.

Résoudre les problèmes

Cette section liste les messages d'erreur que vous pouvez recevoir lorsque vous utilisez des CA gérées par le client et inclut des conseils pour résoudre ces messages.

Message d'erreur Cause Résoudre les problèmes
FAILED_PRECONDITION: GetClusterCertificateAuthority not supported for customer-managed CAs Si vous utilisez une autorité de certification gérée par le client, vous ne pouvez pas utiliser Memorystore pour Valkey pour récupérer les certificats de l'autorité de certification. Pour obtenir les certificats CA d'une CA gérée par le client, vous devez utiliser le service CA.
Server certificate rotation can only be triggered for customer-managed CAs. Vous tentez d'effectuer une rotation des certificats de serveur pour une instance, mais le mode CA de l'instance est "par instance" ou "partagé". Vous ne pouvez pas faire pivoter les certificats de serveur, sauf si le mode que vous utilisez pour une instance est géré par le client.
Invalid format for server CA pool: {CA pool resource}. Expected projects/{project}/locations/{location}/caPools/{caPool}. Le format du pool d'autorités de certification que vous utilisez pour créer l'instance n'est pas valide. Pour le pool d'autorités de certification, utilisez le format suivant :
projects/CA_POOL_PROJECT_ID/locations/REGION_ID/ caPools/CA_POOL_ID
The instance/cluster's server CA pool must be in the same region as the instance/cluster. CA Pool region: {CA pool region}, Instance/cluster region: {cluster region}. Vous essayez de créer une instance située dans une région différente de celle du pool d'autorités de certification. Assurez-vous que l'instance que vous créez et votre pool d'autorités de certification se trouvent dans la même région.
Request is prohibited by organization's policy for CA Pool {CA pool ID}. Le projet Google Cloud qui héberge le pool d'autorités de certification et le projet qui héberge l'instance ne se trouvent pas dans le même périmètre de service. Configurez VPC Service Controls pour que les projets appartiennent au même périmètre de service.
Permission privateca.certificates.create denied on {CA pool ID}. Make sure that you granted the roles/privateca.certificateRequester role to the service account {P4SA email}. Le compte de service Memorystore pour Valkey ne dispose pas du rôle roles/privateca.certificateRequester pour le pool d'autorités de certification. Par conséquent, Memorystore pour Valkey ne peut pas générer de certificats de serveur. Attribuez le rôle roles/privateca.certificateRequester au compte de service. Pour en savoir plus, consultez Accorder au compte de service l'accès au pool d'autorités de certification.
Resource {CA pool ID} not found. Memorystore pour Valkey ne trouve pas le pool d'autorités de certification que vous avez spécifié lorsque vous avez tenté de créer l'instance. Vérifiez l'ID du projet, l'emplacement et le nom du pool d'autorités de certification.
There are no enabled CAs in the CaPool {CA pool ID}. Please ensure that there is at least one enabled Certificate Authority to issue a certificate. Aucune autorité de certification n'est activée dans le pool d'autorités de certification. Memorystore pour Valkey ne peut pas générer de certificats de serveur pour l'instance. Assurez-vous de créer au moins une autorité de certification dans le pool d'autorités de certification et que l'autorité de certification est à l'état Activé.
Quota exhausted for CA Service. Check quotas for the project hosting the CA Pool: {CA pool ID}. Vous avez dépassé le quota du service d'autorité de certification dans le projet Google Cloud qui héberge le pool d'autorités de certification. Memorystore pour Valkey ne peut pas effectuer les opérations qui nécessitent ce service. Vérifiez le quota du service CA dans votre projet. Pour en savoir plus, consultez Quotas et limites.
server_ca_pool must be provided when server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Vous essayez de créer une instance qui utilise le mode CA géré par le client. Toutefois, vous n'avez pas fourni d'informations sur le pool de CA. Spécifiez l'ID du projet, l'emplacement et le nom du pool d'autorités de certification.
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Vous tentez de créer une instance qui utilise le mode CA par instance ou partagé. Ces modes d'AC n'utilisent pas le paramètre server_ca_pool. Vous ne pouvez pas utiliser ce paramètre, sauf si le mode AC est géré par le client.