Gérer l'authentification IAM

Cette page explique comment préparer vos ressources AlloyDB pour PostgreSQL afin d'autoriser l'authentification de la base de données via Identity and Access Management (IAM).

Cette méthode complète l'authentification de la base de données via des rôles utilisateur PostgreSQL standards, que chaque cluster AlloyDB prend en charge. Si vous activez l'authentification basée sur IAM sur votre cluster, vous pouvez utiliser des rôles utilisateur IAM ou PostgreSQL pour vous authentifier auprès de ce cluster.

Par défaut, l'authentification basée sur IAM n'est pas activée pour une instance AlloyDB. Vous pouvez prendre des mesures pour activer les connexions IAM et configurer des utilisateurs de base de données distincts basés sur IAM:

Vous pouvez répéter les dernières étapes autant de fois que nécessaire, chaque fois que vous devez ajouter d'autres utilisateurs IAM à votre cluster AlloyDB.

Le reste de cette page explique ces étapes plus en détail.

Activer ou désactiver l'authentification IAM

Pour activer l'authentification IAM sur une instance, définissez l'option alloydb.iam_authentication sur cette instance sur on.

Pour désactiver l'authentification IAM sur une instance, rétablissez la valeur par défaut de alloydb.iam_authentication, à savoir off.

Pour en savoir plus sur la définition d'options sur les instances AlloyDB, consultez la section Configurer les options de base de données d'une instance.

Accorder à un utilisateur ou à un compte de service IAM l'accès à une instance

L'activation de l'accès authentifié par IAM pour un nouvel utilisateur de base de données se fait en deux étapes:

  1. Mettez à jour les paramètres IAM de votre projet pour accorder à l'utilisateur ou au compte de service IAM approprié l'accès à la base de données AlloyDB.

  2. Créez un utilisateur de base de données sur votre cluster, en définissant le nom d'utilisateur sur l'adresse e-mail de l'utilisateur ou du compte de service IAM.

Vous pouvez répéter la deuxième étape autant de fois que nécessaire pour accorder à un compte défini par IAM l'accès à d'autres clusters de votre projet.

Modifier un compte IAM avec le rôle approprié

Vous pouvez autoriser les utilisateurs IAM ou les comptes de service à s'authentifier avec des instances AlloyDB en leur attribuant les rôles IAM suivants:

  • alloydb.databaseUser
  • serviceusage.serviceUsageConsumer

Pour ce faire, suivez les instructions de la section Accorder l'accès à d'autres utilisateurs. À l'étape où vous sélectionnez un rôle à accorder au compte principal IAM, choisissez alloydb.databaseUser.

Ajouter un compte d'utilisateur ou de service IAM à un cluster

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur le nom du cluster auquel vous souhaitez ajouter un utilisateur.

  3. Cliquez sur Utilisateurs.

  4. Cliquez sur Ajouter un compte utilisateur.

  5. Sélectionnez Cloud IAM.

  6. Dans le champ Principal, saisissez le principal IAM.

    Pour un compte utilisateur IAM, fournissez l'adresse e-mail complète du compte utilisateur. Par exemple, kai@altostrat.com.

    Pour un compte de service IAM, indiquez l'adresse du compte de service sans le suffixe .gserviceaccount.com. Par exemple, pour spécifier le compte de service my-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeur my-service@my-project.iam ici.

  7. Cliquez sur Ajouter.

gcloud

Pour créer un utilisateur de base de données PostgreSQL basé sur un compte utilisateur ou de service IAM, utilisez la commande gcloud alloydb users create:

gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED

Remplacez les éléments suivants :

  • USERNAME: identifiant de l'utilisateur IAM que vous souhaitez ajouter en tant qu'utilisateur de base de données.

    Pour un compte utilisateur IAM, fournissez l'adresse e-mail complète du compte utilisateur. Par exemple, kai@altostrat.com.

    Pour un compte de service IAM, indiquez l'adresse du compte de service sans le suffixe .gserviceaccount.com. Par exemple, pour spécifier le compte de service my-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeur my-service@my-project.iam ici.

  • CLUSTER: ID du cluster dans lequel créer ce compte utilisateur de base de données.

  • REGION: ID de la région dans laquelle se trouve le cluster. Exemple :us-central1

Accorder les autorisations de base de données appropriées aux utilisateurs IAM

Lorsqu'un utilisateur IAM est ajouté à une instance de base de données, ce nouvel utilisateur ne dispose par défaut d'aucun droit sur les bases de données.

Lorsqu'un utilisateur ou un compte de service se connecte à une base de données, il peut exécuter des requêtes sur tous les objets de base de données dont l'accès a été accordé à PUBLIC.

Si l'utilisateur a besoin d'un accès supplémentaire, des droits supplémentaires peuvent lui être accordés à l'aide de l'instruction PostgreSQL GRANT:

GRANT SELECT ON TABLE_NAME TO "USERNAME";

Remplacez les éléments suivants :

  • USERNAME : adresse e-mail de l'utilisateur. Vous devez inclure des guillemets doubles autour de l'adresse.

  • TABLE_NAME: nom de la table à laquelle vous souhaitez accorder l'accès à l'utilisateur.

Supprimer un compte d'utilisateur ou de service IAM d'un cluster

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur le nom du cluster dont vous souhaitez supprimer l'utilisateur.

  3. Cliquez sur Utilisateurs.

  4. Sur la ligne de l'utilisateur que vous souhaitez supprimer, cliquez sur  Ouvrir les actions pour cet utilisateur.

  5. Sélectionnez Supprimer.

  6. Dans la boîte de dialogue Supprimer le compte utilisateur ?, cliquez sur Supprimer.

gcloud

Utilisez la commande gcloud alloydb users delete:

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION

Remplacez les éléments suivants :

  • USERNAME: identifiant de l'utilisateur IAM que vous souhaitez supprimer du cluster.

    Pour un compte utilisateur IAM, fournissez l'adresse e-mail complète du compte utilisateur. Par exemple, kai@altostrat.com.

    Pour un compte de service IAM, indiquez l'adresse du compte de service sans le suffixe .gserviceaccount.com. Par exemple, pour spécifier le compte de service my-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeur my-service@my-project.iam ici.

  • CLUSTER: ID du cluster à partir duquel supprimer cet utilisateur.

  • REGION: ID de la région dans laquelle se trouve le cluster. Exemple :us-central1

Étape suivante