Herstellen einer Verbindung zu Ihrem mithilfe von IAM Authentifizierung und AWS SDK for Python (Boto3) - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Herstellen einer Verbindung zu Ihrem mithilfe von IAM Authentifizierung und AWS SDK for Python (Boto3)

Sie können eine Verbindung zu einem Aurora My- oder AWS SDK for Python (Boto3) wie im Folgenden beschrieben.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein, damit Sie mithilfe der IAM Authentifizierung eine Verbindung zu Ihrem herstellen können:

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 zur Angabe von Anmeldeinformationen finden Sie unter Anmeldeinformationen im AWS SDK for 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 AWS SDK for Python (Boto3), gefunden auf der AWS Seite.

Ä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 der 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. Informationen zum Herunterladen eines SSL Zertifikats finden Sie unter.

Anmerkung

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

Dieser Code stellt eine Verbindung zu einer MariaDB- oder My SQL DB-Instance her.

Bevor Sie diesen Code ausführen, installieren Sie den PyMy SQL Treiber, indem Sie den Anweisungen im Python-Paketindex folgen.

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) 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 SQL Postgre-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.