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 devez activer 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 de service IAM qui doit se connecter en tant qu'utilisateur de base de données, vous devez suivre les étapes suivantes:
À l'aide des outils d'administration IAM, attribuez les rôles
alloydb.databaseUser
etserviceusage.serviceUsageConsumer
à cet utilisateur ou à ce compte de service.À 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 administrateur de base de données tel que
postgres
, accordez au nouvel utilisateur de la base de données des droits d'accès aux tables de base de données appropriées.
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:
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.
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
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 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 servicemy-service@my-project.iam.gserviceaccount.com
, vous devez utiliser la valeurmy-service@my-project.iam
ici.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 servicemy-service@my-project.iam.gserviceaccount.com
, vous devez utiliser la valeurmy-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
Accédez à la page Clusters.
Cliquez sur le nom du cluster dont vous souhaitez supprimer l'utilisateur.
Cliquez sur Utilisateurs.
Sur la ligne de 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=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 servicemy-service@my-project.iam.gserviceaccount.com
, vous devez utiliser la valeurmy-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