Sécuriser l'accès à vos instances à l'aide de l'authentification de base basée sur des jetons

En plus de l'authentification Identity and Access Management (IAM), vous pouvez utiliser l'authentification de base par jeton pour sécuriser l'accès à vos instances Memorystore for Valkey. Solution légère, l'authentification de base par jeton permet aux clients de vérifier leur identité dans vos applications à l'aide de leurs jetons.

L'authentification de base par jeton nécessite un minimum de ressources et une faible surcharge de ressources. De plus, si vos charges de travail actuelles sur Memorystore pour Redis ou vos applications sur site utilisent déjà l'authentification de base par jeton, cette fonctionnalité facilite la transition lorsque vous migrez vers Memorystore for Valkey.

Avantages

L'authentification de base par jeton présente les avantages suivants :

  • Flexibilité : pour les instances nouvelles et existantes, activez l'authentification à tout moment. Lorsque vous activez l'authentification de base par jeton, vos instances sont sécurisées. Pour toutes les nouvelles connexions, les utilisateurs doivent fournir un jeton d'authentification pour s'authentifier auprès de vos instances.
  • Rotation sans temps d'arrêt : faites pivoter les jetons utilisateur sans provoquer de temps d'arrêt pour vos applications.
  • Compatibilité : le super-utilisateur default conserve les mêmes privilèges que ceux qui lui sont accordés. L'authentification de base par jeton ajoute une couche de protection supplémentaire. Cela garantit la rétrocompatibilité lorsque vous migrez vos charges de travail de Memorystore pour Redis vers Memorystore for Valkey.

Modes d'authentification

L'authentification de base par jeton est compatible avec deux modes d'authentification principaux :

  • Authentification simple : méthode simple dans laquelle un utilisateur envoie un jeton d'authentification pour s'authentifier en tant qu'utilisateur default
  • Authentification multi-utilisateur : gérez plusieurs utilisateurs pour authentifier l'accès à vos instances

Bonnes pratiques

Pour des raisons de sécurité, nous vous recommandons de suivre les bonnes pratiques suivantes pour l'authentification de base par jeton :

  • Faites pivoter les jetons utilisateur : utilisez une stratégie de rotation pour les jetons utilisateur.
  • Utilisez Secret Manager : ne codez pas en dur les identifiants d'authentification de base par jeton d'un utilisateur dans le code de votre application. Stockez-les plutôt dans Secret Manager et récupérez-les au moment de l'exécution.

    Secret Manager fournit un coffre-fort chiffré et centralisé pour les identifiants utilisateur, ce qui élimine la prolifération des secrets et réduit la surcharge opérationnelle liée à la gestion manuelle des identifiants. Il applique des contrôles d'accès à l'aide d'IAM et génère automatiquement des journaux d'audit. Cela garantit la conformité et empêche l'exposition des identifiants.

  • Associez l'authentification de base par jeton à Transport Layer Security (TLS): lorsque vous utilisez l'authentification de base par jeton, nous vous recommandons d'activer le chiffrement en transit. Cela garantit que les noms d'utilisateur et les jetons d'authentification ne sont pas envoyés en texte brut sur le réseau.

Avant de commencer

Avant de commencer à sécuriser vos instances à l'aide de l'authentification de base par jeton, remplissez les conditions préalables décrites dans cette section.

Vérifier la compatibilité du client avec l'authentification de base par jeton

Pour confirmer que vos applications clientes sont compatibles avec l'authentification de base par jeton, assurez-vous qu'elles peuvent utiliser la commande AUTH.

L'utilisateur default s'authentifie auprès de vos applications clientes à l'aide de la commande suivante :

AUTH TOKEN

Pour cette commande, TOKEN est le jeton d'authentification de l'utilisateur par défaut.

Tous les autres utilisateurs s'authentifient à l'aide de la commande suivante :

AUTH USERNAME TOKEN

Pour cette commande, USERNAME et TOKEN sont le nom d'utilisateur et le jeton d'authentification de l'utilisateur.

Pour en savoir plus sur la commande AUTH, consultez AUTH dans la documentation Valkey.

Utiliser la Google Cloud console, Google Cloud CLI et les API

Pour utiliser la Google Cloud console, gcloud CLI et les API, procédez comme suit :

  1. Dans la Google Cloud console, sur la page de sélection du projet, sélectionnez ou créez un Google Cloud projet.

    Accéder au sélecteur de projet

  2. Assurez-vous que la facturation est activée pour votre projet. Découvrez comment vérifier si la facturation est activée sur un projet.
  3. Installez et initialisez Google Cloud CLI (gcloud CLI).

    Remarque : Si vous avez installé gcloud CLI, assurez-vous que vous disposez de la dernière version en exécutant gcloud components update. Pour accéder aux commandes gcloud CLI de Memorystore for Valkey, vous devez disposer au moins de la version 489.0.0 de gcloud CLI.

  4. Activez l'API Memorystore for Valkey.
    API Memorystore for Valkey
  5. Activez l'API Network Connectivity.
    API Network Connectivity
  6. Activez l'API Service Consumer Management.
    API Service Consumer Management

Attribuer des rôles

Pour configurer l'authentification de base par jeton pour vos instances, vous devez disposer de l'un des rôles IAM suivants dans votre Google Cloud projet :

  • roles/memorystore.admin (rôle Administrateur Memorystore)
  • roles/owner (rôle Propriétaire)
  • roles/editor (rôle Éditeur)

Gérer l'authentification de base par jeton pour les instances

Memorystore for Valkey est compatible avec les actions suivantes pour gérer l'authentification de base par jeton pour les instances :

Créer une instance avec l'authentification de base par jeton

En créant une instance avec l'authentification de base par jeton, vous disposez d'une méthode légère et largement compatible pour limiter l'accès d'un utilisateur à l'instance.

Vous pouvez créer l'instance à l'aide de gcloud CLI.

Pour créer une instance avec l'authentification de base par jeton activée, utilisez la gcloud beta memorystore instances create commande.

gcloud beta memorystore instances create INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance que vous souhaitez créer pour utiliser l'authentification de base par jeton
  • REGION : région dans laquelle vous souhaitez placer l'instance

Activer l'authentification de base par jeton pour une instance

En activant l'authentification de base par jeton pour une instance, vous disposez d'une méthode légère et largement compatible pour limiter l'accès d'un utilisateur à l'instance.

L'utilisateur default peut s'authentifier auprès de l'instance en utilisant uniquement son jeton. Tous les autres utilisateurs s'authentifient à l'aide d'un nom d'utilisateur et d'un jeton standards. Pour en savoir plus, consultez Vérifier la compatibilité du client avec l'authentification de base par jeton.

L'activation de l'authentification de base par jeton peut entraîner des temps d'arrêt pour les applications qui tentent de créer de nouvelles connexions, car Memorystore for Valkey nécessite des requêtes authentifiées. Bien que les connexions existantes ne soient pas affectées, vous devez mettre à jour vos applications pour utiliser l'authentification de base par jeton pour toute tentative de connexion ultérieure à l'instance. Pour en savoir plus, consultez Se connecter à une instance à l'aide de l'authentification de base par jeton.

Vous pouvez activer l'authentification de base par jeton pour une instance à l'aide de la gcloud CLI.

Pour activer l'authentification de base par jeton, utilisez la gcloud beta memorystore instances update commande.

gcloud beta memorystore instances update INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez activer l'authentification de base par jeton
  • REGION : région où se trouve l'instance

Créer un utilisateur d'authentification de base par jeton pour une instance

En créant un utilisateur d'authentification de base par jeton pour une instance, vous configurez l'instance pour autoriser l'authentification multi-utilisateur. Une fois que l'utilisateur s'est connecté initialement, ce mode d'authentification sert d'identifiant sécurisé et révocable pour les nouvelles connexions. L'utilisateur peut continuer à utiliser le jeton d'authentification jusqu'à ce qu'il le supprime ou qu'il soit supprimé.

Vous pouvez créer un utilisateur d'authentification de base par jeton à l'aide de gcloud CLI.

Pour créer l'utilisateur, utilisez la gcloud beta memorystore instances create-token-auth-user commande.

gcloud beta memorystore instances create-token-auth-user INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez créer un utilisateur d'authentification de base par jeton
  • REGION : région où se trouve l'instance
  • USERNAME : nom d'utilisateur de l'utilisateur

Lister les utilisateurs d'authentification de base par jeton pour une instance

Vous pouvez récupérer la liste des utilisateurs d'authentification de base par jeton pour une instance en utilisant gcloud CLI.

Pour lister les utilisateurs, utilisez la gcloud beta memorystore instances token-auth-users list commande.

gcloud beta memorystore instances token-auth-users list \
--instance=INSTANCE_ID \
--location=REGION

Effectuez les remplacements suivants :

  • INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez récupérer la liste des utilisateurs d'authentification de base par jeton
  • REGION : région où se trouve l'instance

Afficher des informations sur un utilisateur d'authentification de base par jeton

Vous pouvez afficher des informations sur un utilisateur d'authentification de base par jeton à l'aide de gcloud CLI.

Pour afficher des informations sur l'utilisateur, utilisez la gcloud beta memorystore instances token-auth-users describe commande.

gcloud beta memorystore instances token-auth-users describe USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur d'authentification de base par jeton pour lequel vous souhaitez afficher des informations
  • INSTANCE_ID : ID de l'instance auprès de laquelle l'utilisateur peut s' authentifier
  • REGION : région où se trouve l'instance

Supprimer un utilisateur d'authentification de base par jeton d'une instance

En supprimant un utilisateur d'authentification de base par jeton d'une instance, vous révoquez les droits d'accès de l'utilisateur à l'instance.

Vous pouvez supprimer un utilisateur d'authentification de base par jeton d'une instance à l'aide de gcloud CLI.

Pour supprimer l'utilisateur, utilisez la gcloud beta memorystore instances token-auth-users delete commande.

gcloud beta memorystore instances token-auth-users delete USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur d'authentification de base par jeton
  • INSTANCE_ID : ID de l'instance à partir de laquelle vous souhaitez supprimer l'utilisateur
  • REGION : région où se trouve l'instance

Pour l'utilisateur que vous supprimez, Memorystore for Valkey ne met pas fin aux connexions existantes. Pour mettre fin à ces connexions, exécutez la commande suivante sur tous les nœuds de l'instance :

CLIENT KILL USER USERNAME

Gérer l'authentification de base par jeton pour les utilisateurs

Memorystore for Valkey est compatible avec les actions suivantes pour gérer l'authentification de base par jeton pour les utilisateurs :

Créer un jeton d'authentification pour un utilisateur

En créant un jeton d'authentification pour un utilisateur, vous pouvez faire pivoter le jeton existant de l'utilisateur sans provoquer de temps d'arrêt pour vos applications.

Vous pouvez créer un jeton d'authentification pour un utilisateur à l'aide de gcloud CLI.

Pour créer l'utilisateur, utilisez la gcloud beta memorystore instances token-auth-users create-auth-token commande.

gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur pour lequel vous souhaitez créer un jeton d'authentification
  • INSTANCE_ID : ID de l'instance à laquelle l'utilisateur peut accéder à l' aide du jeton
  • REGION : région où se trouve l'instance

Lister les jetons d'authentification pour un utilisateur

Vous pouvez récupérer la liste des jetons d'authentification pour un utilisateur à l'aide de gcloud CLI.

Pour lister les jetons, utilisez la gcloud beta memorystore instances token-auth-users auth-tokens list commande.

gcloud beta memorystore instances token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur auquel appartiennent les jetons d'authentification
  • INSTANCE_ID : ID de l'instance à laquelle l'utilisateur peut accéder à l'aide des jetons d'authentification
  • REGION : région où se trouve l'instance

Afficher des informations sur un jeton d'authentification pour un utilisateur

Vous pouvez afficher des informations sur un jeton d'authentification pour un utilisateur à l'aide de gcloud CLI.

Pour afficher les informations, utilisez la gcloud beta memorystore instances token-auth-users auth-tokens describe commande.

gcloud beta memorystore instances token-auth-users auth-tokens describe AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Effectuez les remplacements suivants :

  • AUTH_TOKEN : nom du jeton d'authentification pour lequel vous souhaitez afficher des informations
  • INSTANCE_ID : ID de l'instance à laquelle l'utilisateur peut accéder à l' aide du jeton
  • REGION : région où se trouve l'instance
  • USERNAME : nom d'utilisateur de l'utilisateur auquel appartient le jeton d'authentification

Supprimer un jeton d'authentification d'un utilisateur

La suppression d'un jeton d'authentification d'un utilisateur est une action de sécurité essentielle qui invalide le jeton.

Vous pouvez supprimer un jeton d'authentification d'un utilisateur à l'aide de gcloud CLI.

Pour supprimer le jeton, utilisez la gcloud beta memorystore instances token-auth-users auth-tokens delete commande.

gcloud beta memorystore instances token-auth-users auth-tokens delete AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Effectuez les remplacements suivants :

  • AUTH_TOKEN : nom du jeton d'authentification que vous souhaitez supprimer de l'utilisateur
  • INSTANCE_ID : ID de l'instance à laquelle vous souhaitez empêcher l' utilisateur d'accéder en supprimant le jeton
  • REGION : région où se trouve l'instance
  • USERNAME : nom d'utilisateur de l'utilisateur qui possède un jeton que vous souhaitez supprimer

Se connecter à une instance à l'aide de l'authentification de base par jeton

Vous pouvez utiliser les méthodes suivantes pour vous connecter à une instance à l'aide de l'authentification de base par jeton :

  • Chaîne d'identifiant de ressource uniforme (URI) : cette chaîne unique et mise en forme est utilisée par souci de commodité, car toutes les informations de connexion nécessaires (par exemple, le nom d'utilisateur et le jeton d'authentification de l'utilisateur, ainsi que l'adresse IP et le nom d'hôte de l'instance) sont contenues dans une seule chaîne.
  • Indicateurs : cette méthode est plus adaptée à l'utilisation individuelle d'un outil de ligne de commande à la création de scripts ou aux environnements dans lesquels la configuration est divisée en variables d'environnement distinctes à l'aide de plusieurs arguments distincts.

Les sections suivantes expliquent chaque méthode de connexion.

Utiliser une chaîne URI

Pour vous connecter à partir d'une VM Compute Engine ou d'un environnement compatible à l'aide d'une chaîne URI, utilisez la commande suivante :

valkey-cli -u
redis://USERNAME:TOKEN@IP_ADDRESS:PORT

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur qui tente de se connecter à l'instance
  • TOKEN : jeton d'authentification de l'utilisateur
  • IP_ADDRESS : adresse IP de l'instance
  • PORT : numéro de port réservé à l'instance

Utiliser des indicateurs

Pour vous connecter à partir d'une VM Compute Engine ou d'un environnement compatible à l'aide d'indicateurs, utilisez la commande suivante :

valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT

Effectuez les remplacements suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur qui tente de se connecter à l'instance
  • TOKEN : jeton d'authentification de l'utilisateur
  • IP_ADDRESS : adresse IP de l'instance
  • PORT : numéro de port réservé à l'instance

Faire pivoter le jeton d'authentification d'un utilisateur sans temps d'arrêt

Pour faire pivoter le jeton d'authentification d'un utilisateur sans provoquer de temps d'arrêt pour vos applications, procédez comme suit :

  1. Créez un jeton d'authentification supplémentaire pour l'utilisateur: Memorystore for Valkey génère un deuxième jeton valide. Les deux jetons sont valides.
  2. Mettez à jour vos applications : mettez à jour vos applications pour utiliser le nouveau jeton.
  3. Supprimez le jeton d'authentification de l'utilisateur: Memorystore for Valkey supprime le premier jeton. L'utilisateur ne peut utiliser que le deuxième jeton pour s'authentifier auprès de vos applications.

Journaux d'accès pour l'authentification de base par jeton

Memorystore for Valkey génère des journaux d'audit pour les activités d'administration et pour les accès aux données pour les opérations associées aux jetons d'authentification et aux utilisateurs. Pour en savoir plus sur ces journaux d'audit, consultez Surveiller les accès à l'aide des journaux d'audit.