Présentation de l'authentification IAM pour les bases de données

Cette page décrit l'authentification IAM (Identity and Access Management) individuelle et de groupe pour les bases de données, que vous utilisez pour gérer l'accès à vos bases de données AlloyDB pour PostgreSQL.

L'authentification IAM pour les bases de données propose les options suivantes :

  • Authentification IAM individuelle : vous ajoutez des utilisateurs ou des comptes de service spécifiques au cluster.
  • Authentification IAM de groupe : vous ajoutez un groupe IAM au cluster. Tous les membres de ce groupe héritent des autorisations d'authentification, ce qui simplifie la gestion pour plusieurs utilisateurs.

L'authentification individuelle est utile lorsque vous devez accorder l'accès directement à des comptes spécifiques. Utilisez l'authentification de groupe lorsque vous souhaitez gérer l'accès en modifiant l'appartenance à un groupe, ce qui réduit la nécessité d'ajouter ou de supprimer des utilisateurs au niveau du cluster.

Concepts d'authentification IAM

Lorsque vous utilisez l'authentification IAM, l'autorisation d'accéder à une instance AlloyDB 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 comptant des utilisateurs qui se connectent via l'authentification IAM pour les bases de données peuvent utiliser IAM 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 AlloyDB, vous pouvez utiliser un compte utilisateur ou un compte de service pour les applications. Pour en savoir plus, consultez la section Comptes principaux.

  • Rôles. Pour l'authentification IAM pour les bases de données, un compte principal a besoin de l'autorisation alloydb.instances.login. Cette autorisation est incluse dans le rôle Client AlloyDB (roles/alloydb.client). Pour obtenir cette autorisation, liez l'utilisateur, le compte de service ou le groupe au rôle prédéfini ou à un rôle personnalisé qui inclut cette autorisation. Pour en savoir plus, consultez la section Autorisations et rôles.

  • Ressource. Les ressources auxquelles les comptes principaux accèdent sont des clusters AlloyDB. 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 AlloyDB du projet. Pour en savoir plus, consultez la section Ressources.

Comparer les options d'authentification pour les bases de données

Le tableau suivant vous aidera à déterminer la méthode d'authentification la mieux adaptée à votre cas d'utilisation.

Fonctionnalité Authentification intégrée à la base de données Authentification IAM pour les bases de données
Méthode d'authentification Mot de passe Jeton d'authentification temporaire
Chiffrement du trafic réseau SSL non requis SSL requis
Gestion des utilisateurs Manuelle Centralisée via IAM

Authentification IAM automatique ou manuelle pour les bases de données

AlloyDB propose deux méthodes d'authentification IAM pour les bases de données : automatique et manuelle.

Authentification IAM automatique pour les bases de données

L'authentification IAM automatique pour les bases de données vous permet de transférer des requêtes et de gérer les jetons d'accès à un connecteur AlloyDB intermédiaire, tel que le proxy d'authentification ou l'un des connecteurs de langage.

Avec l'authentification IAM automatique pour les bases de données, une application n'a besoin de transmettre que le nom d'utilisateur IAM de la base de données dans une requête de connexion du client. Le connecteur envoie les informations de jeton d'accès à la place de l'attribut mot de passe au nom du client.

Authentification IAM manuelle pour les bases de données

L'authentification IAM manuelle pour les bases de données nécessite que le compte principal IAM transmette explicitement le jeton d'accès comme attribut mot de passe dans la requête de connexion client. Les comptes principaux doivent d'abord se connecter à Google Cloud et demander explicitement à IAM le jeton d'accès.

Pour conserver les enregistrements d'accès aux données, y compris les informations de connexion, vous pouvez utiliser Cloud Audit Logs. Cloud Audit Logs sont désactivés par défaut. Activez les journaux d'audit des accès aux données pour le suivi des connexions.

Authentification IAM de groupe

L'authentification IAM de groupe vous permet de gérer les utilisateurs AlloyDB au niveau du groupe. Un groupe Cloud Identity est un exemple de groupe. Cette fonctionnalité simplifie la gestion des utilisateurs de base de données. Vous pouvez gérer les rôles ou les autorisations PostgreSQL pour plusieurs utilisateurs IAM en même temps, au lieu de mettre à jour chaque compte de service ou utilisateur individuellement. Vous pouvez également accorder et révoquer les rôles de base de données pour un groupe Cloud Identity. Tous les nouveaux comptes que vous ajoutez au groupe Cloud Identity héritent des droits et des rôles de ce groupe.

L'authentification IAM de groupe vous permet d'effectuer les opérations suivantes :

  • Ajouter un utilisateur à un groupe et lui demander d'hériter automatiquement de ses rôles IAM et de ses droits sur la base de données.
  • Supprimer un utilisateur d'un groupe pour supprimer ses droits de connexion et de base de données des clusters AlloyDB.
  • Accorder les droits de connexion ou de base de données à un groupe en une fois au lieu de devoir accorder les mêmes droits plusieurs fois à différents utilisateurs.
  • Supprimer les autorisations de connexion ou l'accès à un objet de base de données pour un groupe à la fois.

Même si des rôles et des autorisations IAM sont attribués au niveau du groupe, les utilisateurs et les comptes de service utilisent leurs comptes et identifiants IAM individuels, et non un compte de groupe partagé pour se connecter. AlloyDB crée un compte de base de données sur le cluster pour ce compte principal lors de sa première connexion.

L'activité de connexion et de base de données individuelle de chaque utilisateur ou compte de service s'affiche dans les journaux d'audit. À des fins d'audit, vous pouvez voir quel compte a effectué quelle action dans votre base de données.

Pour en savoir plus sur l'utilisation des groupes Cloud Identity, consultez la présentation de Cloud Identity.

Lorsque vous ajoutez un utilisateur ou un compte de service à un groupe, les modifications suivantes se produisent dans AlloyDB :

  • Si vous avez déjà accordé des autorisations de connexion IAM au groupe, l'utilisateur ou le compte de service peut se connecter au cluster AlloyDB, car l'utilisateur ou le compte de service appartient au groupe.
  • L'utilisateur hérite automatiquement des droits ou des rôles de base de données qui ont été accordés au groupe.

Lorsque vous supprimez un utilisateur ou un compte de service du groupe, les modifications suivantes se produisent dans AlloyDB :

  • L'utilisateur perd tous les droits de base de données précédemment hérités en tant que membre du groupe.
  • L'utilisateur peut toujours créer des sessions s'il reçoit des autorisations de connexion IAM pour le cluster AlloyDB via d'autres appartenances à des groupes. Toutefois, l'utilisateur ne disposera pas des droits sur les bases de données de son ancien groupe d'appartenance lors de sa connexion.

Bonnes pratiques

  • Lorsque vous révoquez l'autorisation de connexion (alloydb.databaseUser) pour un groupe IAM dans Cloud Identity, supprimez le groupe du cluster AlloyDB.
  • Lorsque vous supprimez un groupe de Cloud Identity, supprimez-le du cluster AlloyDB.
  • Utilisez des groupes pour configurer le contrôle des accès basé sur les rôles dans votre base de données. Accordez les privilèges les plus faibles requis au groupe.

Limites

  • L'authentification IAM de groupe est disponible en version preview pour les nouveaux clusters AlloyDB. Pour activer cette fonctionnalité sur un cluster existant, contactez l'équipe chargée de votre compte Google Cloud.
  • L'authentification IAM de groupe n'est compatible qu'avec la version de base de données POSTGRES_15 et versions ultérieures en version preview.
  • Pour des raisons de sécurité, les connexions utilisant l'authentification IAM pour les bases de données ne sont disponibles que sur une connexion SSL. Les connexions non chiffrées sont refusées.
  • Chaque instance dispose d'un quota de connexion par minute, qu'il s'agisse de connexions réussies ou pas. Lorsque le quota est dépassé, les connexions sont temporairement indisponibles. Nous vous recommandons d'éviter les connexions fréquentes et de les limiter à l'aide de réseaux autorisés.
  • Lorsque vous utilisez l'authentification par groupe IAM, si vous disposez d'un cluster AlloyDB contenant des instances répliquées avec accès en lecture, connectez-vous d'abord à l'instance principale avant de vous connecter à l'instance répliquée avec accès en lecture. Après votre première connexion à l'instance principale, les informations utilisateur du groupe sont répliquées sur les instances répliquées avec accès en lecture. Pour les connexions ultérieures, vous pouvez vous connecter directement à l'instance répliquée avec accès en lecture.
  • Vous pouvez ajouter jusqu'à 200 groupes IAM à une instance.
  • Vous ne pouvez pas ajouter de comptes de service ou d'utilisateur IAM individuels appartenant à un groupe sur la même instance. En d'autres termes, vous ne pouvez pas ajouter de compte de type ALLOYDB_IAM_USER si un compte identique de type ALLOYDB_IAM_GROUP_USER ou ALLOYDB_IAM_GROUP_SERVICE_ACCOUNT existe déjà.
  • Si un compte individuel existe déjà sur une instance de type ALLOYDB_IAM_USER, vous ne pouvez pas l'utiliser pour l'authentification IAM de groupe. Ces types d'utilisateurs n'héritent pas des rôles IAM ni des droits sur la base de données d'un groupe. Pour résoudre ce problème et utiliser le compte avec l'authentification IAM pour les groupes, supprimez l'utilisateur ou le compte de service IAM. Pour en savoir plus, consultez la section Un utilisateur ou un compte de service IAM existant n'hérite pas des droits de base de données accordés à son groupe.

  • La propagation des modifications apportées à l'appartenance à un groupe Cloud Identity, telles que l'ajout d'un compte, prend environ 15 minutes. Ce temps s'ajoute au temps nécessaire pour les modifications IAM.

  • L'authentification IAM de groupe n'est pas compatible avec le regroupement de connexions géré.

  • L'authentification IAM de groupe n'est pas compatible avec les identités fédérées.

Étape suivante