Connexion à votre cluster 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

Connexion à votre cluster 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 à Amazon RDS pour une instance de base de données PostgreSQL avec l'AWS CLI et l'outil de ligne de commande psql comme décrit ci-après.

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

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 generated-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ù le d'instances 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...

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=certificateFile 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 fichier de certificat SSL contenant la clé publique.

    Pour plus d'informations, consultez la section Utilisation de SSL avec une instance de base de données PostgreSQL.

  • 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é.

L'exemple suivant montre l'utilisation de psql pour se connecter. Dans l'exemple, psql utilise la variable d'environnement PGPASSWORD définie lors de la génération du jeton dans la section précédente.

psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/rds-combined-ca-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"