Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung und AWS SDK für Python (Boto3) - Amazon Relational Database Service

Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung und AWS SDK für Python (Boto3)

Sie können sich mit dem AWS SDK für Python (Boto3) wie nachfolgend beschrieben mit einer RDS-für-MariaDB-, RDS-für-MySQL- oder RDS-für-PostgreSQL-DB-Instance verbinden.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:

Stellen Sie außerdem sicher, dass die importierten Bibliotheken im Beispielcode auf Ihrem System vorhanden sind.

Beispiele

Die Codebeispiele verwenden Profile für freigegebene Anmeldeinformationen. Informationen zum Angeben von Anmeldeinformationen finden Sie unter Anmeldeinformationen in der AWS SDK für Python (Boto3)-Dokumentation.

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden.

Um dieses Codebeispiel auszuführen, benötigen Sie das AWS SDK für Python (Boto3), das sich auf der AWS-Seite befindet.

Ändern Sie die Werte der folgenden Parameter nach Bedarf.

  • ENDPOINT – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.

  • PORT – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.

  • USER – Das Datenbankkonto, auf das Sie zugreifen möchten.

  • REGION – Die AWS-Region, in der die DB-Instance ausgeführt wird.

  • DBNAME – Die Datenbank, auf die Sie zugreifen möchten.

  • SSLCERTIFICATE – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

    Geben Sie für ssl_ca ein SSL-Zertifikat an. Zum Download eines SSL-Zertifikats siehe Verwenden von SSL/TLS für die Verschlüsselung einer Verbindung mit DB-Instances oder -Clustern.

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her.

Bevor Sie diesen Code ausführen, installieren Sie den PyMySQL-Treiber, indem Sie die Anweisungen im Python-Paketindex befolgen.

import pymysql import sys import boto3 import os ENDPOINT="mysqldb.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))

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

Bevor Sie diesen Code ausführen, installieren Sie psycopg2, indem Sie die Anweisungen in der Psycopg-Dokumentation befolgen.

import psycopg2 import sys import boto3 import os ENDPOINT="postgresmydb.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))

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung.