Sécuriser vos données à l'aide d'une autorité de certification par instance

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

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 CA que vous pouvez utiliser est un mode CA par instance. Memorystore for Redis Cluster provisionne chaque cluster avec sa propre infrastructure d'autorité de certification unique. Pour accéder à un cluster de manière sécurisée, vous devez configurer votre application cliente pour qu'elle fasse confiance à cette hiérarchie d'AC. Cela implique de télécharger et d'installer des certificats CA sur chaque client qui accède au cluster.

Créer un cluster utilisant une CA par instance

Console

Suivez la procédure Créer des instances.

gcloud

Pour créer un cluster qui utilise une autorité de certification par instance, exécutez la commande gcloud redis clusters create.

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=google-managed-per-instance-ca

Effectuez les remplacements suivants :

  • CLUSTER_ID : ID du cluster que vous créez. L'ID de cluster doit comporter entre 1 et 63 caractères, et ne peut 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 placer le cluster.

  • 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 règle de connexion au service. Sinon, vous ne pourrez pas créer le cluster.

  • REPLICA_COUNT : nombre de répliques (par segment). Les valeurs acceptées sont comprises entre 0 et 5.

  • NODE_TYPE : type de nœud du cluster.

  • SHARD_COUNT : nombre de partitions 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 des clusters, consultez Spécifications des clusters et des nœuds.

Le paramètre server-ca-mode représente le mode de l'autorité de certification pour le cluster. Pour une CA par instance, google-managed-per-instance-ca correspond à la valeur du paramètre. Si vous n'utilisez pas ce paramètre, le mode CA 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=google-managed-per-instance-ca

Télécharger les autorités de certification

Si vous activez le chiffrement en transit pour un cluster, les certificats des autorités de certification s'affichent lorsque vous utilisez la commande get-cluster-certificate-authority.

gcloud redis clusters get-cluster-certificate-authority CLUSTER_ID

Remplacez CLUSTER_ID par l'ID du cluster.

Le corps de la réponse inclut les certificats de toutes les AC applicables.

Installer des certificats CA sur le client

Vous devez installer les certificats CA sur le client qui se connecte au cluster. L'installation du certificat CA peut varier en fonction du type de client.

Pour installer un certificat CA sur une VM Linux Compute Engine, procédez comme suit :

  1. Connectez-vous en SSH à un client Linux Compute Engine.

  2. Dans le client, utilisez la commande suivante pour créer un fichier server_ca.pem :

    sudo vim /tmp/server_ca.pem
    
  3. Téléchargez les autorités de certification et collez-les dans le fichier server_ca.pem.

    Vous devez mettre en forme correctement le texte des autorités de certification. Le fichier server_ca.pem peut se présenter comme suit :

    -----BEGIN CERTIFICATE-----
    MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx
    NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n
    bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
    b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1
    MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx
    OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
    aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
    ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H
    8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0
    3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m
    CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh
    1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3
    84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz
    AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
    AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7
    xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT
    wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn
    662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG
    rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g
    lEtWs4V/YBhKA56CW6ASZS8=
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4
    ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n
    bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
    b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2
    MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh
    MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
    aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
    ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD
    8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T
    UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M
    G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy
    qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO
    gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb
    AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
    AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6
    97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq
    5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM
    0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs
    DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9
    9DmrfdF0eFrfWw3VRNLwwXg=
    -----END CERTIFICATE-----
    

    Comme dans l'exemple précédent, votre fichier doit respecter les consignes suivantes :

    • Copiez l'intégralité de l'autorité de certification, y compris les lignes -----BEGIN CERTIFICATE----- et
      -----END CERTIFICATE-----.

    • Assurez-vous que le texte des autorités de certification est complètement justifié à gauche. Vérifiez qu'aucun espace n'apparaît devant une ligne des autorités de certification.

    • Ajoutez chaque AC sur une nouvelle ligne. Vérifiez qu'il n'y a pas de lignes vides entre les CA.

Configurer le client pour le chiffrement en transit

Le client avec lequel vous vous connectez au cluster doit être compatible avec le protocole TLS ou utiliser un side-car tiers pour activer la compatibilité TLS.

Si votre client est compatible avec le protocole TLS, configurez-le pour qu'il pointe vers l'adresse IP du cluster, le port 6379 et le fichier contenant l'autorité de certification. Vous pouvez voir un exemple de connexion à un cluster pour lequel le chiffrement en transit est activé.

Gérer la rotation des autorités de certification

Nous vous recommandons d'installer tous les certificats CA téléchargeables sur les clients qui accèdent au cluster.

L'installation périodique des derniers certificats CA vous permet de disposer des certificats nécessaires lorsque Memorystore for Redis Cluster effectue la rotation des CA. Pendant cette rotation, les autorités de certification existantes et les nouvelles sont actives.

Exemple de code pour se connecter à un cluster qui utilise le chiffrement en transit

Pour afficher un exemple de code expliquant comment configurer une bibliothèque cliente pour se connecter à un cluster utilisant le chiffrement en transit, consultez Exemple de code de bibliothèque cliente pour le chiffrement en transit.