Gérer l'authentification IAM

Cette page fournit des instructions sur les tâches courantes d'IAM Fonctionnalité d'authentification de Memorystore pour Valkey. Pour en savoir plus sur cette fonctionnalité, consultez la page À propos de l'authentification IAM.

Créer une instance avec authentification IAM

Créer une instance Memorystore pour Valkey qui utilise IAM exécutez la commande create:

gcloud beta memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth

Remplacez les éléments suivants :

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

  • REGION_ID est la région dans laquelle vous souhaitez placer l'instance.

  • NETWORK est le réseau utilisé pour créer votre instance. Il doit utiliser au format: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. L'ID de réseau utilisé ici doit correspondre à celui utilisé par la stratégie de connexion de service. Sinon, l'opération create échoue. Pour en savoir plus, consultez Mise en réseau.

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

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge

    Pour en savoir plus sur les types de nœuds et les configurations d'instances, consultez la section Spécification des instances et des nœuds.

  • SHARD_COUNT détermine le nombre de segments dans votre Compute Engine. Le nombre de fragments détermine la capacité de mémoire totale pour stocker les données d'instance. Pour en savoir plus sur la spécification des instances, consultez Spécification des instances et des nœuds.

Accorder des autorisations pour l'authentification IAM

Pour accorder un accès IAM, accordez au compte principal roles/memorystore.dbConnectionUser à l'aide des instructions d'attribution des rôles IAM.

Par défaut, l'attribution du rôle roles/memorystore.dbConnectionUser à un compte principal permet le compte principal pour accéder à toutes les instances de votre projet.

Créer un rôle d'administrateur IAM limité pour une instance

Vous pouvez créer un rôle permettant de modifier les autorisations IAM de connexion des instances sans accorder un accès administrateur IAM complet. Pour ce faire, créez un administrateur IAM limité pour le rôle roles/memorystore.dbConnectionUser. Pour plus plus de détails, consultez Créer des administrateurs IAM limités.

Se connecter à une instance qui utilise l'authentification IAM

  1. Si aucune de vos VM Compute Engine n'utilise le même réseau autorisé en tant qu'instance Valkey, créez-en un et connectez-vous à celui-ci en en suivant la procédure de démarrage rapide avec une VM Linux.

  2. Pour vous connecter à votre instance, vous devez activer les portées d'accès et les API suivantes pour votre projet :

  3. Installez valkey-cli sur la VM Compute Engine en suivant le consultez la page Installer Valkey.

  4. Exécutez la commande suivante pour obtenir un jeton d'accès pour votre utilisateur IAM :

    gcloud auth print-access-token
    
  5. Connectez-vous au point de terminaison de détection de votre instance :

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Remplacez les éléments suivants :

  6. Exécutez la commande CLUSTER SHARDS pour afficher la topologie de vos nœuds. Notez l'une des adresses IP et des numéros de port du nœud.

  7. Connectez-vous au nœud de votre choix en exécutant la commande suivante :

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
    

    Remplacez les éléments suivants :

    • NODE_IP_ADDRESS est l'adresse IP du nœud que vous avez trouvée à l'étape précédente.
    • NODE_PORT correspond au numéro de port du nœud que vous avez trouvé à l'étape précédente.
  8. Exécutez les commandes Valkey SET et GET pour vérifier que vous avez établi un authentifiée au nœud de votre instance.

  9. Une fois que vous avez terminé de tester votre connexion à l'instance Valkey, vous devez envisagez de supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Valkey. Vous éviterez ainsi que des frais soient facturés sur votre compte de facturation Cloud.

  10. Exécutez la commande suivante pour vous authentifier et vous connecter à votre instance à l'aide de valkey-cli, en remplaçant les variables par les valeurs appropriées :

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Remplacez les éléments suivants :

  11. Exécutez une commande Valkey SET et GET pour vérifier que vous avez établi une connexion authentifiée à votre instance.

  12. Une fois que vous avez terminé de tester la connexion à l'instance Valkey, pensez à supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Valkey. Vous éviterez ainsi que des frais soient facturés sur votre compte de facturation Cloud.

Automatiser la récupération du jeton d'accès

Il est recommandé d'automatiser la récupération de jetons d'accès dans votre application, car les jetons d’accès ne peuvent pas être facilement codés en dur en raison de leur courte durée de vie.

  1. (Facultatif) Si vous ne l'avez pas déjà fait, créez un compte de service pour votre application (voir Créer et gérer un compte de service).

    gcloud iam service-accounts create SA_NAME \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Remplacez les éléments suivants :

    • SA_NAME correspond au nom du compte de service.
    • DESCRIPTION est une description facultative du compte de service.
    • DISPLAY_NAME est un nom de compte de service à afficher dans la console Google Cloud.
  2. Accordez à votre compte de service l'autorisation memorystore.dbConnectionUser sur votre projet.

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
    --role="memorystore.dbConnectionUser"
    

    Remplacez les éléments suivants :

    • PROJECT_ID est l'ID de projet.
    • SA_NAME correspond au nom du compte de service.
    • ROLE_NAME est un nom de rôle, par exemple roles/compute.osLogin.
  3. Authentifiez votre application en tant que compte de service donné. Voir Comptes de service pour en savoir plus.

    Pour obtenir des exemples de code qui montrent comment authentifier votre application à l'aide de bibliothèques clientes populaires, consultez Exemples de code de bibliothèque cliente d'authentification IAM.

Exemple de code permettant de se connecter à une instance utilisant l'authentification IAM

Pour consulter un exemple de code compatible avec Valkey expliquant comment configurer une bibliothèque cliente pour se connecter à un qui utilise l'authentification IAM, consultez l'exemple de code de la bibliothèque cliente d'authentification IAM.