Connexion à votre cluster de base de données à l'aide de l'authentification IAM à partir de la ligne de commande : AWS CLI et MySQL Client - 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 MySQL Client

À partir de la ligne de commande, vous pouvez vous connecter à une instance de base de données Amazon RDS ou à un avec l'AWS CLI et l'outil de ligne de commande mysql en suivant les instructions des liens suivants.

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

L'exemple suivant illustre comment obtenir un jeton d'identification signé à l'aide d'AWS CLI.

aws rds generate-db-auth-token \ --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \ --port 3306 \ --region us-west-2 \ --username jane_doe

Dans cet exemple, les paramètres sont les suivants :

  • --hostname – Le 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 ressemblent à l'exemple suivant.

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

Connexion à votre instance de base de données

Le format général de connexion est illustré ci-dessous.

mysql --host=hostName --port=portNumber --ssl-ca=[full path]rds-combined-ca-bundle.pem --enable-cleartext-plugin --user=userName --password=authToken

Les paramètres sont les suivants :

  • --host – Le 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.

  • --ssl-ca – Le fichier de certificat SSL contenant la clé publique.

    Pour plus d'informations, consultez Utilisation de SSL/TLS pour chiffrer une connexion à une instance de base de données.

  • --enable-cleartext-plugin –  Une valeur qui spécifie que AWSAuthenticationPlugin doit être utilisé pour cette connexion.

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

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

Le jeton d'authentification est composé de plusieurs centaines de caractères. Il peut être encombrant 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 suivant illustre une manière de contourner ce problème.

RDSHOST="rdsmysql.123456789012.us-west-2.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/rds-combined-ca-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN

Lorsque vous vous connectez avec AWSAuthenticationPlugin, la connexion est sécurisée par SSL. Pour le vérifier, tapez la commande suivante à l'invite de commande mysql>.

show status like 'Ssl%';

Les lignes suivantes de l'affichage obtenu fournissent plus de détails.

+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+