Connessione al dell'istanza database tramite Autenticazione IAM e AWS SDK for Python (Boto3) - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connessione al dell'istanza database tramite Autenticazione IAM e AWS SDK for Python (Boto3)

Puoi connetterti a un cluster di database Aurora MySQL o Aurora PostgreSQL con la AWS SDK for Python (Boto3) come descritto di seguito.

Prerequisiti

Di seguito sono riportati i prerequisiti per la connessione alcluster di DB utilizzando l'autenticazione IAM:

Inoltre, assicurarsi che le librerie importate nel codice di esempio esistano nel sistema.

Esempi

Gli esempi di codice utilizzano i profili per le credenziali condivise. Per informazioni sulla specifica delle credenziali, vedere Credenziali nella documentazione di AWS SDK for Python (Boto3).

Il seguente esempio di codice mostra come generare un token di autenticazione e utilizzarlo per eseguire la connessione a un cluster del database.

Per eseguire questo codice di esempio è necessario AWS SDK for Python (Boto3), disponibile sul sito AWS.

Modifica i valori delle variabili seguenti in base alle esigenze.

  • ENDPOINT: l'endpoint del cluster di database cui vuoi accedere

  • PORT – Numero di porta usato per la connessione al dell'istanza database

  • USER – L'account database cui vuoi accedere.

  • REGION: la regione AWS in cui è in esecuzione il cluster di database

  • DBNAME – Database a cui accedere.

  • SSLCERTIFICATE - Percorso completo del certificato SSL per Amazon Aurora

    Per ssl_ca, specificare un certificato SSL. Per scaricare un certificato SSL consulta

Nota

Non è possibile utilizzare un record DNS Route 53 personalizzato o un endpoint personalizzato Aurora anziché l'endpoint del cluster database per generare il token di autenticazione.

Questo codice si connette a un cluster di database Aurora MySQL.

Prima di eseguire questo codice, installa il driver PyMySQL seguendo le istruzioni in Python Package Index (Indice dei pacchetti Python).

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(host=ENDPOINT, user=USER, passwd=token, port=PORT, database=DBNAME, ssl_ca='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))

Questo codice si connette a un cluster di database Aurora PostgreSQL.

Prima di eseguire questo codice, installapsycopg2seguendo le istruzioni in Documentazione di 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))

Se desideri connetterti a un cluster di database tramite un proxy, consulta Connessione a un proxy mediante autenticazione IAM.