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 cluster d' de base de données à l'aide de l'authentification IAM et du AWS SDK pour Python (Boto3)
Vous pouvez vous connecter à une instance de base de données en procédant comme décrit ci-dessous. AWS SDK pour Python (Boto3)
Prérequis
Les conditions préalables à la connexion à votre cluster de base de données à l'aide de l'authentification IAM sont les suivantes :
En outre, assurez-vous que les bibliothèques importées dans l'exemple de code existent sur votre système.
Exemples
Les exemples de code utilisent des profils pour les informations d'identification partagées. Pour plus d'informations sur la spécification des informations d'identification, consultez la section Informations d'identification
Les exemples de code suivants montre comment générer un jeton d'authentification, puis comment l'utiliser pour se connecter à un cluster de base de données.
Pour exécuter cet exemple de code, vous avez besoin du AWS SDK pour Python (Boto3)
Modifiez la valeur des variables suivantes selon les besoins :
-
ENDPOINT
– Le point de terminaison de cluster de base de données à laquelle vous souhaitez accéder. -
PORT
– Le numéro du port utilisé lors de la connexion au cluster d' de base de données. -
USER
– Le compte de base de données auquel vous souhaitez accéder. -
REGION
— La AWS région dans laquelle le cluster d' de base de données est exécuté -
DBNAME
– La base de données à laquelle vous souhaitez accéder. -
SSLCERTIFICATE
– Le chemin d'accès complet au certificat SSL pour Amazon AuroraPour
ssl_ca
, spécifiez un certificat SSL. Pour télécharger un certificat SSL, consultez Utilisation SSL/TLS pour chiffrer une connexion à une de clusters.
Note
Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé ni un point de terminaison personnalisé Aurora à la place du point de terminaison du cluster de bases de données pour générer le jeton d'authentification.
Ce code se connecte à un cluster de base de données Aurora MySQL.
Avant d'exécuter ce code, installez le pilote PyMy SQL en suivant les instructions du Python Package Index
import pymysql import sys import boto3 import os ENDPOINT="
mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com
" PORT="3306
" USER="jane_doe
" REGION="us-east-1
" DBNAME="mydb
" os.environ['LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN'] = '1' #gets the credentials from .aws/credentials session = boto3.Session(profile_name='default') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION) try: conn = pymysql.connect(auth_plugin_map={'mysql_clear_password':None},host=ENDPOINT, user=USER, password=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE
', ssl_verify_identity=True, ssl_verify_cert=True) cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))
Ce code se connecte à un cluster de base de données Aurora PostgreSQL.
Avant d'exécuter ce code, installez psycopg2
en suivant les instructions de la documentation de Psycopg
import psycopg2 import sys import boto3 import os ENDPOINT="
postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com
" PORT="5432
" USER="jane_doe
" REGION="us-east-1
" DBNAME="mydb
" #gets the credentials from .aws/credentials session = boto3.Session(profile_name='RDSCreds') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT
, Port=PORT
, DBUsername=USER
, Region=REGION
) try: conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USER, password=token, sslrootcert="SSLCERTIFICATE
") cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))
Si vous souhaitez vous connecter à un cluster de bases de données via un proxy, consultez Connexion à un proxy à l'aide de l'authentification IAM.