À 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 des comptes d'utilisateur et de service. L'authentification basée sur IAM s'intègre à Valkey 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 instance Memorystore, consultez Gérer l'authentification IAM.

Authentification IAM pour Valkey

Lorsque vous utilisez l'authentification IAM, l'autorisation d'accéder à une instance 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 memorystore.instances.connect pour s'authentifier auprès d'une instance. 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 Memorystore (roles/memorystore.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 instances 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 à une instance spécifique. Pour obtenir des instructions, consultez Gérer les autorisations pour l'authentification IAM.

Commande AUTH Valkey

La fonctionnalité d'authentification IAM utilise la commande AUTH Valkey pour s'intégrer à IAM, ce qui permet aux clients de fournir un jeton d'accès IAM qui sera validé par l'instance Valkey 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 à une instance 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 d’accès jusqu’à 12 heures lorsque vous le générez.

Lorsque vous établissez une nouvelle connexion Valkey, 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

Pour mettre fin à une connexion, utilisez la commande Valkey CLIENT KILL. Exécutez d'abord CLIENT LIST pour identifier la connexion, puis exécutez CLIENT KILL pour y mettre fin.

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 redémarrées ou déployées, il peut y avoir une augmentation soudaine du nombre de nouvelles connexions. Si vous mettez à jour vos clients progressivement et que vous implémentez un délai exponentiel, vous pouvez absorber ce débit réduit.

Pour afficher un exemple de code expliquant comment utiliser l'authentification IAM, consultez Exemple de code pour l'authentification IAM et le chiffrement en transit.

Bonnes pratiques pour éviter la double mise en cache des jetons

Pour éviter les échecs d'authentification causés par la double mise en cache des jetons, suivez ces bonnes pratiques :

  • Récupérer les jetons à la demande : utilisez des fournisseurs d'identifiants dynamiques ou des rappels fournis par votre bibliothèque cliente (tels que Valkey GLIDE ou redis-py) pour récupérer les jetons à la demande pour les nouvelles connexions.
  • Inspecter les horodatages d'expiration : si vous utilisez un calendrier d'actualisation personnalisé, inspectez l'horodatage d'expiration réel du jeton ou ajustez le seuil d'actualisation anticipée de la bibliothèque d'authentification.

Sécurité et confidentialité

L'authentification IAM vous permet de vous assurer que votre instance Valkey 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 :