Connexion à votre instance de base de données à l'aide de l'authentification IAM à partir de la ligne de commande : AWS CLI et client psql - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connexion à votre instance de base de données à l'aide de l'authentification IAM à partir de la ligne de commande : AWS CLI et client psql

À partir de la ligne de commande, vous pouvez vous connecter à une instance de base de données Amazon RDS for PostgreSQL avec AWS CLIl'outil de ligne de commande psql comme décrit ci-après.

Prérequis

Les conditions préalables à la connexion à votre instance de base de données à l'aide de l'authentification IAM sont les suivantes :

Note

Pour plus d'informations sur la connexion à votre base de données à l'aide de pgAdmin avec authentification IAM, consultez le billet de blog Utilisation de l'authentification IAM pour se connecter à PgAdmin Amazon Aurora PostgreSQL ou Amazon RDS for PostgreSQL

Création d'un jeton d'authentification IAM

Le jeton d'authentification se compose de plusieurs centaines de caractères ; il peut donc être complexe à manipuler sur la ligne de commande. Pour contourner ce problème, vous pouvez enregistrer le jeton dans une variable d'environnement, puis utiliser cette variable pour la connexion. L'exemple de code suivant montre comment utiliser l'AWS CLI pour obtenir un jeton d'authentification signé à l'aide de la commande generate-db-auth-token et le stocker dans une variable d'environnement PGPASSWORD.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"

Dans cet exemple, les paramètres de la commande generate-db-auth-token sont les suivants :

  • --hostname – Nom d'hôte de l'instance de base de données auquel vous souhaitez accéder.

  • --port – Le numéro du port utilisé lors de la connexion au d'instances de base de données.

  • --region – La région AWS où l'instance de base de données s'exécute.

  • --username – Le compte de base de données auquel vous souhaitez accéder.

Les premiers caractères du jeton généré ressemblent à l'exemple suivant.

rdspostgres.123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
Note

Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé à la place du point de terminaison de l'instance de base de données pour générer le jeton d'authentification.

Connexion à une instance PostgreSQL Amazon RDS

Le format général pour utiliser psql pour la connexion est illustré ci-dessous.

psql "host=hostName port=portNumber sslmode=verify-full sslrootcert=full_path_to_ssl_certificate dbname=DBName user=userName password=authToken"

Les paramètres sont les suivants :

  • host – Nom d'hôte de l'instance de base de données auquel vous souhaitez accéder.

  • port – Le numéro du port utilisé lors de la connexion au d'instances de base de données.

  • sslmode – Le mode SSL à utiliser.

    Lorsque vous utilisez sslmode=verify-full, la connexion SSL vérifie le point de terminaison de l'instance de base de données par rapport au point de terminaison dans le certificat SSL.

  • sslrootcert – Le chemin d'accès complet vers le fichier de certificat SSL contenant la clé publique.

    Pour de plus amples informations, veuillez consulter Utilisation de SSL avec une instance de base de données PostgreSQL.

    Pour télécharger un certificat SSL, consultez .

  • dbname – La base de données à laquelle vous souhaitez accéder.

  • user – Le compte de base de données auquel vous souhaitez accéder.

  • password – Un jeton d'authentification IAM signé.

Note

Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé à la place du point de terminaison de l'instance de base de données pour générer le jeton d'authentification.

L'exemple suivant montre l'utilisation de psql pour se connecter. Dans cet exemple, psql utilise la variable d'environnement RDSHOST pour l'hôte et la variable d'environnement PGPASSWORD pour le jeton généré. Par ailleurs, /sample_dir/ est le chemin d'accès complet au fichier de certificat SSL contenant la clé publique.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )" psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/global-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"

Si vous souhaitez vous connecter à une instance de bases de données via un proxy, consultez Connexion à un proxy à l'aide de l'authentification IAM.