À propos de l'authentification IAM

Memorystore fournit la fonctionnalité d'authentification Identity and Access Management (IAM) , qui exploite IAM pour vous aider à mieux gérer l'accès à la connexion pour les utilisateurs et les comptes de service. L'authentification basée sur IAM s'intègre à Redis AUTH, ce qui vous permet de faire pivoter les identifiants (jetons IAM) de manière transparente 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 la page 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 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 liaisons de stratégie 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 validé 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 voir un exemple de commande AUTH, consultez Se connecter à un cluster Redis qui utilise 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 dans le cadre de l'authentification expire une heure après sa récupération. Vous pouvez également étendre la durée de validité du jeton jusqu’à 12 heures lorsque vous le générez.

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 continue de fonctionner, même si le jeton expire.

Mettre fin à une connexion authentifiée

Si vous souhaitez mettre fin à la connexion, utilisez la CLIENT KILL commande Redis. Pour trouver la connexion à laquelle 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 en état stable. Toutefois, elle affecte le débit auquel vous pouvez établir une connexion.

L'activation de l'authentification IAM limite le débit des 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, de sorte que cet impact est négligeable. Toutefois, lorsque les applications clientes sont actualisées via des déploiements ou un traitement de rebond, il peut y avoir un afflux de connexions établies à nouveau. Si vous mettez à jour vos clients progressivement et que vous implémentez des délais exponentiels, vous pouvez absorber ce débit réduit.

Pour afficher un exemple de code expliquant comment utiliser 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 comptes principaux IAM autorisés. Le chiffrement TLS n'est pas fourni, sauf si le chiffrement en transit est activé. 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 champs d'application d'accès et les API suivants pour votre projet :