En plus de l'authentification Identity and Access Management (IAM), vous pouvez utiliser l'authentification de base basée sur des jetons pour sécuriser l'accès à vos instances Memorystore pour Valkey. Solution légère, l'authentification de base basée sur les jetons permet aux clients de valider leur identité dans vos applications à l'aide de leurs jetons.
L'authentification de base basée sur les jetons nécessite un minimum de ressources et a 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 basée sur des jetons, cette fonctionnalité facilite une transition en douceur lorsque vous migrez vers Memorystore pour Valkey.
Avantages
L'utilisation de l'authentification de base basée sur les jetons présente les avantages suivants :
- Flexibilité : pour les instances nouvelles et existantes, activez l'authentification à tout moment. Lorsque vous activez l'authentification de base basée sur un jeton, vos instances sont sécurisées. Pour toute nouvelle connexion, les utilisateurs doivent fournir un jeton d'authentification pour s'authentifier dans 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
defaultconserve les mêmes droits que ceux accordés à cet utilisateur. L'authentification de base basée sur des jetons ajoute un niveau de protection supplémentaire. Cela garantit la rétrocompatibilité lorsque vous migrez vos charges de travail de Memorystore pour Redis vers Memorystore pour Valkey.
Modes d'authentification
L'authentification de base basée sur les jetons 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 basée sur les jetons :
- Alterner les jetons utilisateur : utilisez une règle d'alternance pour les jetons utilisateur.
Utilisez Secret Manager : ne codez pas en dur les identifiants d'authentification de base basés sur des jetons 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 charge opérationnelle liée à la gestion manuelle des identifiants. Il applique les 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 basée sur des jetons à Transport Layer Security (TLS) : lorsque vous utilisez l'authentification de base basée sur des jetons, nous vous recommandons d'activer le chiffrement en transit. Cela permet de s'assurer que les noms d'utilisateur et les jetons d'authentification ne sont pas envoyés en texte clair sur le réseau.
Avant de commencer
Avant de commencer à sécuriser vos instances à l'aide de l'authentification de base basée sur des jetons, remplissez les conditions préalables décrites dans cette section.
Vérifier la compatibilité du client avec l'authentification de base par jeton
Pour vérifier que vos applications clientes sont compatibles avec l'authentification de base basée sur des jetons, 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 correspond au 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 correspondent au nom d'utilisateur et au jeton d'authentification de l'utilisateur.
Pour en savoir plus sur la commande AUTH, consultez AUTH dans la documentation Valkey.
Utiliser la console Google Cloud , la Google Cloud CLI et les API
Pour utiliser la console Google Cloud , la gcloud CLI et les API, procédez comme suit :
- Dans la console Google Cloud , sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud .
- 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.
Installez et initialisez la Google Cloud CLI (gcloud CLI).
Remarque : Si vous avez installé la gcloud CLI, assurez-vous que vous disposez de la dernière version en exécutant
gcloud components update. Pour accéder aux commandes Memorystore pour Valkey gcloud CLI, vous devez disposer au moins de la version489.0.0de gcloud CLI.-
Activez l'API Memorystore pour Valkey.
API Memorystore pour Valkey -
Activez l'API Network Connectivity.
API Network Connectivity -
Activez l'API Service Consumer Management.
API Service Consumer Management
Attribuer des rôles
Pour configurer l'authentification de base basée sur des jetons pour vos instances, vous devez disposer de l'un des rôles IAM suivants dans votre projet Google Cloud :
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 pour Valkey est compatible avec les actions suivantes pour gérer l'authentification de base basée sur des jetons pour les instances :
- Créer une instance avec une authentification de base basée sur un jeton
- Activer l'authentification de base par jeton pour une instance
- Créer un utilisateur d'authentification de base basée sur un jeton pour une instance
- Lister les utilisateurs de l'authentification de base basée sur des jetons pour une instance
- Afficher des informations sur un utilisateur de l'authentification de base basée sur des jetons
- Supprimer un utilisateur d'authentification de base par jeton d'une instance
Créer une instance avec une authentification de base basée sur un jeton
En créant une instance avec une authentification de base basée sur un jeton, vous disposez d'une méthode légère et largement prise en charge pour limiter l'accès d'un utilisateur à l'instance.
Vous pouvez créer l'instance à l'aide de la gcloud CLI.
Pour créer une instance avec l'authentification de base basée sur des jetons activée, utilisez la commande gcloud beta memorystore instances create.
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 basée sur un jeton
- REGION : région dans laquelle vous souhaitez placer l'instance
Activer l'authentification de base basée sur des jetons pour une instance
En activant l'authentification de base basée sur des jetons pour une instance, vous disposez d'une méthode simple et largement prise en charge 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 basée sur les jetons peut entraîner des temps d'arrêt pour les applications qui tentent de créer des connexions, car Memorystore pour 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 basée sur les jetons 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 basée sur un jeton pour une instance à l'aide de la gcloud CLI.
Pour activer l'authentification de base basée sur un jeton, utilisez la commande gcloud beta memorystore instances update.
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 basée sur un jeton
- REGION : région où se trouve l'instance
Créer un utilisateur d'authentification de base basée sur des jetons pour une instance
En créant un utilisateur d'authentification de base basée sur des jetons 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 basée sur un jeton à l'aide de la gcloud CLI.
Pour créer l'utilisateur, utilisez la commande gcloud beta memorystore instances create-token-auth-user.
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 basée sur un jeton
- REGION : région où se trouve l'instance
- USERNAME : nom d'utilisateur
Lister les utilisateurs de l'authentification de base par jeton pour une instance
Vous pouvez récupérer la liste des utilisateurs de l'authentification de base basée sur des jetons pour une instance à l'aide de la gcloud CLI.
Pour lister les utilisateurs, utilisez la commande gcloud beta memorystore instances token-auth-users list.
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 de l'authentification de base par jeton
- REGION : région où se trouve l'instance
Afficher des informations sur un utilisateur de l'authentification de base basée sur des jetons
Vous pouvez afficher des informations sur un utilisateur d'authentification de base basée sur un jeton à l'aide de la gcloud CLI.
Pour afficher des informations sur l'utilisateur, utilisez la commande gcloud beta memorystore instances token-auth-users describe.
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 de l'authentification de base basée sur un jeton pour lequel vous souhaitez afficher des informations
- INSTANCE_ID : ID de l'instance à 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 authentifié par jeton de base d'une instance, vous révoquez ses droits d'accès à l'instance.
Vous pouvez supprimer un utilisateur authentifié par jeton de base d'une instance à l'aide de la gcloud CLI.
Pour supprimer l'utilisateur, utilisez la commande gcloud beta memorystore instances token-auth-users delete.
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 de l'authentification de base basée sur un 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 pour 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 pour Valkey permet d'effectuer les actions suivantes pour gérer l'authentification de base basée sur des jetons pour les utilisateurs :
- Créer un jeton d'authentification pour un utilisateur
- Lister les jetons d'authentification d'un utilisateur
- Afficher des informations sur un jeton d'authentification pour un utilisateur
- Supprimer un jeton d'authentification d'un utilisateur
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 la gcloud CLI.
Pour créer l'utilisateur, utilisez la commande gcloud beta memorystore instances token-auth-users create-auth-token.
gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \ --instance=INSTANCE_ID \ --location=REGION
Effectuez les remplacements suivants :
- USERNAME : nom d'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 d'un utilisateur à l'aide de la gcloud CLI.
Pour lister les jetons, utilisez la commande gcloud beta memorystore instances token-auth-users auth-tokens list.
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 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 la gcloud CLI.
Pour afficher les informations, utilisez la commande gcloud beta memorystore instances token-auth-users auth-tokens describe.
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 auquel appartient le jeton d'authentification
Supprimer un jeton d'authentification d'un utilisateur
La suppression d'un jeton d'authentification pour 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 la gcloud CLI.
Pour supprimer le jeton, utilisez la commande gcloud beta memorystore instances token-auth-users auth-tokens delete.
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 dont vous souhaitez supprimer le jeton
Se connecter à une instance à l'aide de l'authentification de base basée sur un jeton
Vous pouvez utiliser les méthodes suivantes pour vous connecter à une instance à l'aide de l'authentification de base basée sur un jeton :
- Chaîne d'identifiant URI (Uniform Resource Identifier) : cette chaîne unique et formatée est utilisée pour plus de commodité, car elle contient 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).
- Indicateurs : cette méthode est plus adaptée à l'utilisation individuelle de l'outil de ligne de commande, aux scripts ou aux environnements où la configuration est divisée en variables d'environnement distinctes à l'aide de plusieurs arguments distincts.
Dans les sections suivantes, chaque méthode de connexion est expliquée.
Utiliser une chaîne d'URI
Pour vous connecter depuis une VM Compute Engine ou un environnement compatible à l'aide d'une chaîne d'URI, utilisez la commande suivante :
valkey-cli -u redis://USERNAME:TOKEN@IP_ADDRESS:PORT
Effectuez les remplacements suivants :
- USERNAME : nom 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 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.
Alterner le jeton d'authentification d'un utilisateur sans aucun temps d'arrêt
Pour faire tourner le jeton d'authentification d'un utilisateur sans provoquer de temps d'arrêt pour vos applications, procédez comme suit :
- Créez un jeton d'authentification supplémentaire pour l'utilisateur : Memorystore pour Valkey génère un deuxième jeton valide. Les deux jetons sont valides.
- Mettez à jour vos applications : mettez à jour vos applications pour qu'elles utilisent le nouveau jeton.
- Supprimez le jeton d'authentification de l'utilisateur : Memorystore pour Valkey supprime le premier jeton. L'utilisateur ne peut utiliser que le deuxième jeton pour s'authentifier dans vos applications.
Journaux d'accès pour l'authentification de base par jeton
Memorystore pour Valkey génère des journaux d'audit des activités d'administration et d'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.