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 --port5432
--regionus-west-2
--usernamejane_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 SSL avec une instance de SQL base de données Postgre.
-
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 --port5432
--regionus-west-2
--usernamejane_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.