Vous pouvez chiffrer de manière sécurisée toutes les données qui circulent entre vos applications clientes et Memorystore for Redis Cluster. Il s'agit du chiffrement en transit. Grâce au chiffrement en transit, tout le trafic Redis est chiffré via le protocole TLS (Transport Layer Security). Cela garantit que toutes les données qui circulent entre vos applications et Memorystore for Redis Cluster restent confidentielles et ne sont pas altérées.
Lorsque le chiffrement en transit est activé, les clients Redis communiquent exclusivement via une connexion sécurisée. Les clients Redis 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 Redis peut utiliser le protocole TLS.
Les clusters qui utilisent le chiffrement en transit disposent d'autorités de certification. Vous utilisez les autorités de certification pour authentifier les certificats des machines de vos clusters.
Un mode d'autorité de certification que vous pouvez utiliser est une autorité de certification gérée par le client. Vous pouvez utiliser des autorités de certification gérées par le client pour vos clusters dans Memorystore for Redis Cluster. 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. Dans le cadre de l'utilisation de ce mode, vous devez configurer votre propre pool d'autorités de certification hébergé sur Certificate Authority Service.
Avant de pouvoir configurer un cluster pour qu'il 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 cluster et au moins une autorité de certification dans ce pool à l'aide de CA Service. 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 cluster, vous spécifiez le pool d'autorités de certification. Dans le cadre de cette configuration, le compte de service Memorystore for Redis Cluster 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 for Redis Cluster l'utilise pour signer le certificat de serveur du cluster.
Avant de commencer
Avant d'utiliser le mode d'autorité de certification gérée 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 Gestionnaire d'opérations CA Service (roles/privateca.caManager) sur CA Service.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis. Pour en savoir plus sur l'attribution de rôles, consultez la page 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, procédez comme suit :
- Créez un pool d'autorités de certification. Avant de pouvoir configurer un cluster pour qu'il utilise une autorité de certification gérée par le client, vous devez créer un pool d'autorités de certification dans CA Service. Ce pool doit se trouver dans la même région que votre cluster.
- Créez une autorité de certification dans le pool d'autorités de certification. Une fois le pool d'autorités de certification créé, vous devez utiliser CA Service pour créer au moins une autorité de certification dans le pool.
- Déléguez l'autorisation au compte de service Memorystore for Redis Cluster d'émettre des certificats de serveur avec des autorités de certification à partir du pool d'autorités de certification que vous créez.
- Créez un cluster 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 d'autorités de certification dans CA Service dans le même projet que celui dans lequel vous prévoyez de créer vos clusters dans Memorystore for Redis Cluster, ou vous pouvez créer le pool d'autorités de certification dans un autre projet. Toutefois, si vous créez le pool d'autorités de certification dans un autre projet, VPC Service Controls peut vous empêcher de créer des clusters, en fonction des stratégies de votre organisation. Pour résoudre ce problème, assurez-vous que le projet qui héberge le pool d'autorités de certification et l'autorité de certification, ainsi que le projet qui héberge Memorystore for Redis Cluster appartiennent au même périmètre de service. Pour en savoir plus, consultez la page 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 du pool d'autorités de certification, avec les paramètres de configuration obligatoires suivants :
- Créez le pool d'autorités de certification dans la même région que celle dans laquelle vous prévoyez de créer votre cluster. Pour obtenir la liste des régions compatibles avec Memorystore for Redis Cluster, consultez la page Emplacements de Memorystore for Redis Cluster.
- Autorisez les demandes de certificat basées sur la configuration.
- Autorisez les noms DNS dans les autres noms d'objet. Lorsque vous configurez les contraintes d'identité du pool d'autorités de certification, ne définissez aucune restriction sur le format des noms DNS qui pourraient entrer en conflit avec ce que Memorystore for Redis Cluster pourrait ajouter à l'autre nom d'objet.
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 une autorité de certification 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 de l'autorité de certification, mais assurez-vous de la créer à l'état Activé.
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.
Pour créer une autorité de certification subordonnée dans CA Service, suivez les instructions de la section Créer une autorité de certification subordonnée.
Pour créer une autorité de certification subordonnée à partir d'une autorité de certification racine externe, suivez les instructions de la section Créer une autorité de certification subordonnée à partir d'une autorité de certification externe.
Fournir au compte de service l'accès au pool d'autorités de certification
Pour vous assurer que votre compte de service Memorystore for Redis Cluster est autorisé à demander et à signer des certificats pour vos clusters, accordez le rôle roles/privateca.certificateRequester au compte de service pour le pool d'autorités de certification que vous avez créé.
Ce compte de service est au format suivant :
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com. Remplacez PROJECT_NUMBER par le numéro de votre
Google Cloud projet.
gcloud
Pour accorder au compte de service l'accès au pool d'autorités de certification, utilisez la gcloud privateca pools add-iam-policy-binding
commande.
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 Google Cloud projet dans lequel vous souhaitez créer vos clusters.
- REGION_ID : région dans laquelle se trouve le pool d'autorités de certification.
- SERVICE_ACCOUNT_NAME : nom du compte de service Memorystore for Redis Cluster. Le numéro de projet de ce compte de service est le même que celui associé à PROJECT_ID.
Créer un cluster qui utilise une autorité de certification gérée par le client
Console
Suivez les étapes décrites dans Créer des instances.
gcloud
Pour créer un cluster qui utilise une autorité de certification gérée par le client, utilisez la gcloud redis clusters create commande.
gcloud redis clusters create CLUSTER_ID \ --region=REGION_ID \ --network=NETWORK \ --replica-count=REPLICA_COUNT \ --node-type=NODE_TYPE \ --shard-count=SHARD_COUNT \ --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 :
CLUSTER_ID : ID du cluster que vous créez. L'ID du cluster doit comporter entre 1 et 63 caractères, et ne contenir 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 que le cluster soit situé. Vous devez créer votre cluster dans la même région que le pool d'autorités de certification que vous avez créé.
NETWORK : réseau que vous utilisez pour créer le cluster. Il doit utiliser le format suivant :
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. L'ID de réseau que vous utilisez doit correspondre à celui utilisé par la stratégie de connexion de service. Sinon, vous ne pouvez pas créer le cluster.REPLICA_COUNT : nombre d'instances répliquées (par segment). Les valeurs acceptées sont comprises entre
0et5.NODE_TYPE : type de nœud. Les valeurs acceptées sont les suivantes :
redis-shared-core-nanoredis-standard-smallredis-highmem-mediumredis-highmem-xlarge
SHARD_COUNT : nombre de segments dans le cluster. Le nombre de segments détermine la capacité de mémoire totale pour stocker les données du cluster. Pour en savoir plus sur les spécifications du cluster, consultez la page Spécifications du cluster et des nœuds.
CA_POOL_PROJECT_ID : ID du pool d'autorités de certification que vous avez créé.
REGION_ID : région dans laquelle se trouve le pool d'autorités de certification. Le cluster 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 d'autorité de certification du cluster. Pour une autorité de certification 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 d'autorité de certification par défaut est par instance.
Exemple :
gcloud redis clusters create my-cluster \ --region=us-central1 \ --network=projects/my-network-project/global/networks/default \ --replica-count=1 \ --node-type=redis-highmem-medium \ --shard-count=3 \ --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 une rotation des certificats de serveur du cluster
En plus de la rotation hebdomadaire des certificats côté serveur effectuée par Memorystore for Redis Cluster, vous pouvez effectuer une rotation des certificats à la demande.
gcloud
Pour effectuer une rotation des certificats de serveur de toutes les machines d'un cluster, utilisez la
gcloud redis clusters update
commande.
gcloud redis clusters update CLUSTER_ID \ --region=REGION_ID \ --rotate-server-certificate
Effectuez les remplacements suivants :
- CLUSTER_ID : ID du cluster contenant les machines pour lesquelles vous souhaitez effectuer une rotation des certificats de serveur
- REGION_ID : région dans laquelle se trouve le cluster
Exemple :
gcloud redis clusters update my-cluster \ --region=us-central1 \ --rotate-server-certificate
Limites
Les limites suivantes s'appliquent lorsque vous utilisez des autorités de certification gérées par le client avec Memorystore for Redis Cluster :
- Une fois que vous avez configuré une autorité de certification gérée par le client pour un cluster, vous ne pouvez plus modifier la configuration. Par exemple, vous ne pouvez pas modifier l'ID du pool d'autorités de certification du cluster.
- Ne supprimez pas le pool d'autorités de certification géré par le client et ne révoquez pas les autorisations du compte de service associées à l'autorité de certification. 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 au cluster.
Résoudre les problèmes
Cette section répertorie les messages d'erreur que vous pouvez recevoir lorsque vous utilisez des autorités de certification gérées par le client et inclut des conseils pour résoudre ces messages.
| Message d'erreur | Cause | Résolution |
|---|---|---|
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 for Redis Cluster pour récupérer les certificats d'autorité de certification. | Pour obtenir les certificats d'autorité de certification pour une autorité de certification gérée par le client, vous devez utiliser le CA Service. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
Vous tentez d'effectuer une rotation des certificats de serveur pour un cluster, mais le mode d'autorité de certification du cluster est par instance ou partagé. | Vous ne pouvez pas effectuer une rotation des certificats de serveur, sauf si le mode que vous utilisez pour un cluster est géré par le client. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
Le pool d'autorités de certification que vous utilisez pour créer le cluster n'est pas au bon format. | 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 tentez de créer un cluster situé dans une région différente de celle du pool d'autorités de certification. | Assurez-vous que le cluster 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 Google Cloud projet qui héberge le pool d'autorités de certification et le projet qui héberge le cluster ne se trouvent pas dans le même périmètre de service. | Configurez VPC Service Controls afin 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 for Redis Cluster ne dispose pas du
roles/privateca.certificateRequester rôle pour le pool d'autorités de certification. Par conséquent, Memorystore for Redis Cluster ne peut pas générer de certificats de serveur. |
Accordez le rôle roles/privateca.certificateRequester au
compte de service. Pour en savoir plus, consultez la section Fournir au compte de service
l'accès au pool d'autorités de certification. |
Resource {CA pool ID} not found. |
Memorystore for Redis Cluster ne trouve pas le pool d'autorités de certification que vous avez spécifié lorsque vous avez tenté de créer le cluster. | Vérifiez l'ID, l'emplacement et le nom du projet 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 for Redis Cluster ne peut pas générer de certificats de serveur pour le cluster. | 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 de CA Service dans le Google Cloud projet qui héberge le pool d'autorités de certification. Memorystore for Redis Cluster ne peut pas effectuer d'opérations nécessitant ce service. | Vérifiez le quota de CA Service dans votre projet. Pour en savoir plus, consultez la page Quotas et limites. |
server_ca_pool must be provided when server_ca_mode is
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Vous tentez de créer un cluster qui utilise le mode d'autorité de certification gérée par le client. CA mode. Toutefois, vous n'avez pas fourni d'informations sur le pool d'autorités de certification. | Spécifiez l'ID, l'emplacement et le nom du projet 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 un cluster qui utilise le mode d'autorité de certification par instance ou
partagé. Ces modes d'autorité de certification n'utilisent pas le server_ca_pool
paramètre. |
Vous ne pouvez pas utiliser ce paramètre, sauf si le mode d'autorité de certification est géré par le client. |