À propos de l'authentification IAM

Memorystore fournit la fonctionnalité d'authentification Identity and Access Management (IAM), qui utilise IAM pour vous aider à mieux gérer l'accès des comptes d'utilisateur et de service. L'authentification basée sur IAM s'intègre à Redis AUTH, ce qui vous permet de faire tourner les identifiants (jetons IAM) de manière fluide sans avoir à utiliser de mots de passe statiques.

Pour savoir comment configurer l'authentification IAM pour votre cluster Memorystore, consultez Gérer l'authentification IAM.

Authentification IAM pour Redis

Lorsque vous utilisez l'authentification IAM, l'autorisation d'accéder à un cluster Memorystore n'est pas accordée directement à l'utilisateur final. À la place, les autorisations sont regroupées dans des rôles, et les rôles sont attribués à des comptes principaux. Pour en savoir plus, consultez la présentation d'IAM.

Les administrateurs qui s'authentifient avec IAM peuvent utiliser l'authentification IAM Memorystore pour gérer de manière centralisée le contrôle des accès à leurs instances à l'aide de stratégies IAM. Les stratégies IAM impliquent les entités suivantes :

  • Comptes principaux. Dans Memorystore, vous pouvez utiliser deux types de comptes principaux : un compte utilisateur et un compte de service (pour les applications). Les autres types de comptes principaux, tels que les groupes Google, les domaines Google Workspace ou les domaines Cloud Identity, ne sont pas encore compatibles avec l'authentification IAM. Pour en savoir plus, consultez Concepts liés à l'identité.

  • Rôles Pour l'authentification IAM Memorystore, un utilisateur a besoin de l'autorisation redis.clusters.connect pour s'authentifier auprès d'un cluster. Pour obtenir cette autorisation, vous pouvez lier l'utilisateur ou le compte de service au rôle prédéfini Utilisateur de la connexion à la base de données du cluster Redis (roles/redis.dbConnectionUser). Pour en savoir plus sur les rôles IAM, consultez la page Rôles.

  • Ressources. Les ressources auxquelles les comptes principaux accèdent sont des clusters Memorystore. Par défaut, des liaisons de stratégie IAM sont appliquées au niveau du projet, de sorte que les comptes principaux reçoivent des autorisations de rôle pour toutes les instances Memorystore du projet. Toutefois, les associations de stratégies IAM peuvent être limitées à un cluster spécifique. Pour obtenir des instructions, consultez Gérer les autorisations pour l'authentification IAM.

Commande Redis AUTH

La fonctionnalité d'authentification IAM utilise la commande Redis AUTH pour s'intégrer à IAM, ce qui permet aux clients de fournir un jeton d'accès IAM qui sera vérifié par le cluster Memorystore avant d'autoriser l'accès aux données.

Comme pour chaque commande, la commande AUTH est envoyée non chiffrée, sauf si le chiffrement en transit est activé.

Pour obtenir un exemple de commande AUTH, consultez Se connecter à un cluster Redis utilisant l'authentification IAM.

Période de validité du jeton d'accès IAM

Par défaut, le jeton d'accès IAM que vous récupérez lors de l'authentification expire une heure après avoir été récupéré. Vous pouvez également définir le délai d'expiration du jeton d'accès lorsque vous générez le jeton d'accès.

Lorsque vous établissez une nouvelle connexion Redis, vous devez présenter un jeton d'accès valide à l'aide de la commande AUTH. Si le jeton expire, vous devez en obtenir un nouveau pour établir de nouvelles connexions. Toutefois, si vous avez déjà authentifié une connexion existante, elle continuera de fonctionner, même si le jeton expire.

Mettre fin à une connexion authentifiée

Si vous souhaitez mettre fin à la connexion, utilisez la commande Redis CLIENT KILL. Pour trouver la connexion que vous souhaitez mettre fin, exécutez d'abord CLIENT LIST, qui renvoie les connexions client par ordre d'ancienneté. Vous pouvez ensuite exécuter CLIENT KILL pour mettre fin à la connexion.

Activer l'authentification IAM

L'activation de l'authentification IAM ne dégrade pas les performances à l'état stable. Toutefois, cela affecte la fréquence à laquelle vous pouvez établir une connexion.

L'activation de l'authentification IAM limite le nombre de connexions client établies chaque seconde. En effet, l'authentification IAM de Google Cloud doit authentifier chaque nouvelle connexion. En état stable, une application active les pools de connexions. L'impact est donc négligeable. Toutefois, lorsque les applications clientes sont actualisées par le biais de déploiements ou du traitement des rejets, un afflux de connexions peut être rétabli. Si vous mettez à jour vos clients progressivement et que vous implémentez des intervalles exponentiels entre les tentatives, vous pouvez absorber ce taux réduit.

Pour afficher un exemple de code sur l'utilisation de l'authentification IAM, consultez Exemple de code d'authentification IAM et de chiffrement en transit.

Sécurité et confidentialité

L'authentification IAM vous permet de vous assurer que votre cluster Redis n'est accessible qu'aux principaux IAM autorisés. Le chiffrement TLS n'est pas fourni, sauf si l'option Chiffrement en transit est activée. Pour cette raison, il est recommandé d'activer le chiffrement en transit lorsque vous utilisez l'authentification IAM.

Se connecter à une VM Compute Engine

Si vous utilisez une VM Compute Engine pour vous connecter à une instance qui utilise l'authentification IAM, vous devez activer les niveaux d'accès et les API suivants pour votre projet :