Cette page explique comment préparer votre instance AlloyDB pour PostgreSQL afin d'autoriser l'authentification de la base de données via Identity and Access Management (IAM).
L'authentification IAM complète l'authentification de la base de données via des utilisateurs PostgreSQL standards, que chaque cluster AlloyDB prend en charge. Si vous activez l'authentification IAM sur votre cluster, vous pouvez utiliser des rôles d'utilisateur IAM ou PostgreSQL pour vous authentifier auprès de ce cluster.
Par défaut, l'authentification IAM n'est pas activée sur une instance AlloyDB. Pour l'activer, procédez comme suit :
Activez manuellement l'authentification IAM sur chaque instance à laquelle les comptes d'utilisateur ou de service IAM doivent se connecter
Pour chaque compte d'utilisateur ou compte de service IAM qui doit se connecter en tant qu'utilisateur de base de données, procédez comme suit :
À l'aide des outils d'administrateur IAM, accordez à cet utilisateur ou à ce compte de service les rôles
alloydb.databaseUseretserviceusage.serviceUsageConsumer.À l'aide de la Google Cloud CLI, créez un utilisateur de base de données correspondant à cet utilisateur ou à ce compte de service sur votre cluster AlloyDB.
À l'aide d'un compte d'administrateur de base de données tel que
postgres, accordez au nouvel utilisateur de base de données des droits d'accès aux tables de base de données appropriées.
Vous pouvez répéter ces étapes chaque fois que vous devez ajouter d'autres utilisateurs IAM à votre cluster AlloyDB.
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 Configurer les options de base de données d'une instance.
Accorder l'accès à une instance à un utilisateur ou à un compte de service IAM
L'activation de l'accès IAM pour un nouvel utilisateur de base de données s'effectue en deux étapes :
Mettez à jour les paramètres IAM de votre projet pour accorder l'accès à la base de données AlloyDB à l'utilisateur ou au compte de service IAM approprié.
Créez un nouvel utilisateur de base de données sur votre cluster, en définissant le nom d'utilisateur comme adresse e-mail de l'utilisateur ou du compte de service IAM.
Vous pouvez répéter l'étape 2 pour accorder à un compte IAM l'accès à d'autres clusters de votre projet.
Mettre à jour un compte IAM avec le rôle approprié
Vous pouvez permettre aux utilisateurs ou aux comptes de service IAM de s'authentifier auprès des instances AlloyDB en leur accordant les rôles IAM suivants :
alloydb.databaseUser: permet à l'utilisateur de se connecter à votre instance AlloyDB.serviceusage.serviceUsageConsumer: fournit à l'utilisateur l'accès à une API qui vérifie les autorisations.
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 utilisateur ou un compte de service IAM à un cluster
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster auquel vous souhaitez ajouter un utilisateur.
Cliquez sur Utilisateurs.
Cliquez sur Ajouter un compte utilisateur.
Sélectionnez Cloud IAM.
Dans le champ Compte principal, saisissez le compte principal IAM.
Pour un compte utilisateur IAM, indiquez 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 servicemy-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeurmy-service@my-project.iamici.Pour attribuer à l'utilisateur des rôles autres que le rôle par défaut
alloydbsuperuser, procédez comme suit :- Saisissez le nom du rôle dans Rôles.
- Pour ajouter le rôle, appuyez sur Entrée ou Tabulation.
Sélectionnez x pour tout rôle que vous souhaitez supprimer pour cet utilisateur.
Pour en savoir plus, consultez la section Rôles prédéfinis.
Cliquez sur Ajouter.
gcloud
Pour créer un utilisateur de base de données PostgreSQL basé sur un utilisateur ou un
compte de service IAM, utilisez
la commande gcloud alloydb users create.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASEDRemplacez les variables suivantes :
USERNAME: identifiant de l'utilisateur IAM que vous souhaitez ajouter en tant que nouvel utilisateur de base de données.Pour un compte utilisateur IAM, indiquez 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 servicemy-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeurmy-service@my-project.iamici.CLUSTER: ID du cluster dans lequel créer ce compte d'utilisateur de base de données.REGION: ID de la région dans laquelle se trouve le cluster. Par 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'
GRANT instruction PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Remplacez les variables suivantes :
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 utilisateur ou un compte de service IAM d'un cluster
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster dont vous souhaitez supprimer l'utilisateur.
Cliquez sur Utilisateurs.
Sur la ligne représentant l'utilisateur que vous souhaitez supprimer, cliquez sur Ouvrir les actions pour cet utilisateur.
Sélectionnez Supprimer.
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=REGIONRemplacez les éléments suivants :
USERNAME: identifiant de l'utilisateur IAM que vous souhaitez supprimer du cluster.Pour un compte utilisateur IAM, indiquez 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 servicemy-service@my-project.iam.gserviceaccount.com, vous devez utiliser la valeurmy-service@my-project.iamici.CLUSTER: ID du cluster dont vous souhaitez supprimer cet utilisateur.REGION: ID de la région dans laquelle se trouve le cluster. Par exemple,us-central1.