En plus de l'authentification IAM (Identity and Access Management), vous pouvez utiliser l'authentification de base basée sur des jetons pour sécuriser l'accès à vos clusters dans Memorystore for Redis Cluster. Solution légère, l'authentification de base basée sur des jetons permet aux clients de valider leur identité dans vos applications à l'aide de leurs jetons.
L'authentification de base basée sur des jetons 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 basée sur des jetons, cette fonctionnalité facilite la transition lorsque vous migrez vers Memorystore for Redis Cluster.
Avantages
L'authentification de base basée sur des jetons présente les avantages suivants :
- Flexibilité : pour les clusters nouveaux et existants, activez l'authentification à tout moment. Lorsque vous activez l'authentification de base basée sur des jetons, vos clusters sont sécurisés. Pour toutes les nouvelles connexions, les utilisateurs doivent fournir un jeton pour s'authentifier auprès de vos clusters.
- 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 qui lui sont accordés. L'authentification de base basée sur des jetons 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 Redis Cluster.
Modes d'authentification
L'authentification de base basée sur des 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 clusters
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 des jetons :
- 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 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 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 basée sur des jetons à TLS (Transport Layer Security): lorsque vous utilisez l'authentification de base basée sur des jetons, nous vous recommandons d'activer le chiffrement en transit. Cela garantit que les noms d'utilisateur et les jetons ne sont pas envoyés en texte brut sur le réseau.
Avant de commencer
Avant de commencer à sécuriser vos clusters à 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 basée sur des jetons
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 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 Redis.
Utiliser la Google Cloud console, la Google Cloud CLI et les API
Pour utiliser la Google Cloud console, la gcloud CLI et les API, procédez comme suit :
- Dans la Google Cloud console, sur la page de sélection du projet, sélectionnez ou créez un Google Cloud projet.
- 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 gcloud CLI de Memorystore for Redis Cluster, vous devez disposer au moins de la version489.0.0de la gcloud CLI.-
Activez l'API Memorystore for Redis Cluster.
API Memorystore for Redis Cluster -
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 clusters, vous devez disposer de l'un des rôles IAM suivants dans votre Google Cloud projet :
roles/redis.admin(rôle Administrateur Redis)roles/owner(rôle Propriétaire)roles/editor(rôle Éditeur)
Gérer l'authentification de base basée sur des jetons pour les clusters
Memorystore for Redis Cluster est compatible avec les actions suivantes pour gérer l'authentification de base basée sur des jetons pour les clusters :
- Créer un cluster avec l'authentification de base basée sur des jetons
- Activer l'authentification de base basée sur des jetons pour un cluster
- Créer un utilisateur d'authentification de base basée sur des jetons pour un cluster
- Répertorier les utilisateurs d'authentification de base basée sur des jetons pour un cluster
- Afficher des informations sur un utilisateur d'authentification de base basée sur des jetons
- Supprimer un utilisateur d'authentification de base basée sur des jetons d'un cluster
Créer un cluster avec l'authentification de base basée sur des jetons
En créant un cluster avec l'authentification de base basée sur des jetons, vous disposez d'une méthode légère et largement compatible pour limiter l'accès d'un utilisateur au cluster.
Vous pouvez créer le cluster à l'aide de la gcloud CLI.
Pour créer un cluster avec l'authentification de base basée sur des jetons activée, utilisez la
gcloud beta redis clusters create
commande.
gcloud beta redis clusters create CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
Effectuez les remplacements suivants :
- CLUSTER_ID : ID du cluster que vous souhaitez créer pour utiliser l'authentification de base basée sur des jetons
- REGION : région dans laquelle vous souhaitez que le cluster soit situé
Activer l'authentification de base basée sur des jetons pour un cluster
En activant l'authentification de base basée sur des jetons pour un cluster, vous disposez d'une méthode légère et largement compatible pour limiter l'accès d'un utilisateur au cluster.
L'utilisateur default peut s'authentifier auprès du cluster 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 basée sur des jetons.
L'activation de l'authentification de base basée sur des jetons peut entraîner des temps d'arrêt pour les applications qui tentent de créer des connexions, car Memorystore for Redis Cluster 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 des jetons pour toute tentative de connexion ultérieure au cluster. Pour en savoir plus, consultez Se connecter à un cluster à l'aide de l'authentification de base basée sur des jetons.
Vous pouvez activer l'authentification de base basée sur des jetons pour un cluster à l'aide de la gcloud CLI.
Pour activer l'authentification de base basée sur des jetons, utilisez la gcloud beta redis clusters update commande.
gcloud beta redis clusters update CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
Effectuez les remplacements suivants :
- CLUSTER_ID : ID du cluster pour lequel vous souhaitez activer l'authentification de base basée sur des jetons
- REGION : région dans laquelle se trouve le cluster
Créer un utilisateur d'authentification de base basée sur des jetons pour un cluster
En créant un utilisateur d'authentification de base basée sur des jetons pour un cluster, vous configurez le cluster 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 des jetons à l'aide de la gcloud CLI.
Pour créer l'utilisateur, utilisez la gcloud beta redis clusters create-token-auth-user commande.
gcloud beta redis clusters create-token-auth-user CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Effectuez les remplacements suivants :
- CLUSTER_ID : ID du cluster pour lequel vous souhaitez créer un utilisateur d'authentification de base basée sur des jetons
- REGION : région dans laquelle se trouve le cluster
- USERNAME : nom d'utilisateur de l'utilisateur
Répertorier les utilisateurs d'authentification de base basée sur des jetons pour un cluster
Vous pouvez récupérer la liste des utilisateurs d'authentification de base basée sur des jetons pour un cluster à l'aide de la gcloud CLI.
Pour répertorier les utilisateurs, utilisez la gcloud beta redis clusters token-auth-users list commande.
gcloud beta redis clusters token-auth-users list \ --cluster=CLUSTER_ID \ --region=REGION
Effectuez les remplacements suivants :
- CLUSTER_ID : ID du cluster pour lequel vous souhaitez récupérer une liste des utilisateurs d'authentification de base basée sur des jetons.
- REGION : région dans laquelle se trouve le cluster
Afficher des informations sur un utilisateur d'authentification de base basée sur des jetons
Vous pouvez afficher des informations sur un utilisateur d'authentification de base basée sur des jetons à l'aide de la gcloud CLI.
Pour afficher des informations sur l'utilisateur, utilisez la gcloud beta redis clusters token-auth-users describe commande.
gcloud beta redis clusters token-auth-users describe USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur de l'utilisateur d'authentification de base basée sur des jetons pour lequel vous souhaitez afficher des informations
- CLUSTER_ID : ID du cluster auprès duquel l'utilisateur peut s'authentifier
- REGION : région dans laquelle se trouve le cluster
Supprimer un utilisateur d'authentification de base basée sur des jetons d'un cluster
En supprimant un utilisateur d'authentification de base basée sur des jetons d'un cluster, vous révoquez les droits d'accès de l'utilisateur au cluster.
Vous pouvez supprimer un utilisateur d'authentification de base basée sur des jetons d'un cluster à l'aide de la gcloud CLI.
Pour supprimer l'utilisateur, utilisez la gcloud beta redis clusters token-auth-users delete commande.
gcloud beta redis clusters token-auth-users delete USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur de l'utilisateur d'authentification de base basée sur des jetons
- CLUSTER_ID : ID du cluster à partir duquel vous souhaitez supprimer l' utilisateur
- REGION : région dans laquelle se trouve le cluster
Pour l'utilisateur que vous supprimez, Memorystore for Redis Cluster ne met pas fin aux connexions existantes. Pour mettre fin à ces connexions, exécutez la commande suivante sur tous les nœuds du cluster :
CLIENT KILL USER USERNAME
Gérer l'authentification de base basée sur des jetons pour les utilisateurs
Memorystore for Redis Cluster est compatible avec 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
- Répertorier les jetons d'authentification pour 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 gcloud beta redis clusters token-auth-users create-auth-token commande.
gcloud beta redis clusters token-auth-users create-auth-token USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur pour lequel vous souhaitez créer un jeton d'authentification
- CLUSTER_ID : ID du cluster auquel l'utilisateur peut accéder à l'aide du jeton
- REGION : région dans laquelle se trouve le cluster
Répertorier les jetons d'authentification pour un utilisateur
Vous pouvez récupérer la liste des jetons d'authentification pour un utilisateur à l'aide de la gcloud CLI.
Pour répertorier les jetons, utilisez la gcloud beta redis clusters token-auth-users auth-tokens list commande.
gcloud beta redis clusters token-auth-users auth-tokens list \ --token-auth-user=USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur auquel appartiennent les jetons d'authentification
- CLUSTER_ID : ID du cluster auquel l'utilisateur peut accéder à l'aide des jetons d'authentification
- REGION : région dans laquelle se trouve le cluster
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 gcloud beta redis clusters token-auth-users auth-tokens describe
commande.
gcloud beta redis clusters token-auth-users auth-tokens describe AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Effectuez les remplacements suivants :
- AUTH_TOKEN : nom du jeton d'authentification pour lequel vous souhaitez afficher des informations
- CLUSTER_ID : ID du cluster auquel l'utilisateur peut accéder à l'aide du jeton
- REGION : région dans laquelle se trouve le cluster
- 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 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 la gcloud CLI.
Pour supprimer le jeton, utilisez la gcloud beta redis clusters token-auth-users auth-tokens delete commande.
gcloud beta redis clusters token-auth-users auth-tokens delete AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Effectuez les remplacements suivants :
- AUTH_TOKEN : nom du jeton d'authentification que vous souhaitez supprimer de l'utilisateur
- CLUSTER_ID : ID du cluster auquel vous souhaitez empêcher l'utilisateur d'accéder en supprimant le jeton
- REGION : région dans laquelle se trouve le cluster
- USERNAME : nom d'utilisateur dont vous souhaitez supprimer le jeton
Se connecter à un cluster à l'aide de l'authentification de base basée sur des jetons
Vous pouvez utiliser les méthodes suivantes pour vous connecter à un cluster à l'aide de l'authentification de base basée sur des jetons :
- Chaîne d'URI (Uniform Resource Identifier) : cette chaîne unique et formatée est utilisée par souci de commodité, car toutes les informations de connexion nécessaires (par exemple, le nom d'utilisateur et le jeton de l'utilisateur, ainsi que l'adresse IP et le nom d'hôte du cluster) sont contenues dans une seule chaîne.
- Indicateurs : cette méthode est plus adaptée à l'utilisation d'outils de ligne de commande individuels usage, aux 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 d'URI
Pour vous connecter à partir d'une VM Compute Engine ou d'un environnement compatible à l'aide d'une chaîne d'URI, utilisez la commande suivante :
redis-cli -u redis://USERNAME:TOKEN@IP_ADDRESS:PORT
Effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur de l'utilisateur qui tente de se connecter au cluster
- TOKEN : jeton d'authentification de l'utilisateur
- IP_ADDRESS : adresse IP du cluster
- PORT : numéro de port réservé au cluster
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 :
redis-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 au cluster
- TOKEN : jeton d'authentification de l'utilisateur
- IP_ADDRESS : adresse IP du cluster
- PORT : numéro de port réservé au cluster
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 :
- Créez un jeton d'authentification supplémentaire pour l'utilisateur: Memorystore for Redis Cluster 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 for Redis Cluster supprime le premier jeton. L'utilisateur ne peut utiliser que le deuxième jeton pour s'authentifier auprès de vos applications.
Accéder aux journaux pour l'authentification de base basée sur des jetons
Memorystore for Redis Cluster 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 l'accès à l'aide des journaux d'audit.