Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan ke instans DB Anda menggunakan IAM otentikasi dan AWS SDK for Python (Boto3)
Anda dapat terhubung ke cluster DB RDSuntuk MariaDB, SQL My, atau SQL Postgre DB Aurora SQL My atau dengan SQL AWS SDK for Python (Boto3) seperti yang dijelaskan berikut.
Prasyarat
IAM
Selain itu, pastikan pustaka yang diimpor dalam kode sampel ada di sistem Anda.
Contoh
Contoh kode ini menggunakan profil untuk kredensial bersama. Untuk informasi tentang kredensi yang menentukan, lihat Kredensial di
Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke instans DB.
Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK for Python (Boto3)
Ubah nilai variabel berikut sesuai kebutuhan:
-
ENDPOINT
– Titik akhir instans DB yang ingin Anda akses -
PORT
– Nomor port yang digunakan untuk menghubungkan ke instans DB Anda -
USER
– Akun basis data yang ingin Anda akses -
REGION
— The AWS Wilayah tempat instans DB berjalan -
DBNAME
– Basis data yang ingin Anda akses -
SSLCERTIFICATE
— Jalur lengkap ke SSL sertifikat untuk Amazon RDS AmazonUntuk
ssl_ca
, tentukan SSL sertifikat. Untuk mengunduh SSL sertifikat, lihat.
catatan
Anda tidak dapat menggunakan DNS catatan Route 53 kustom instans DB untuk menghasilkan token otentikasi.
Kode ini terhubung ke instance MariaDB atau SQL My DB.
Sebelum menjalankan kode ini, instal PyMy SQL driver dengan mengikuti instruksi di Indeks Paket Python
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))
Kode ini terhubung ke instance Postgre SQL DB.
Sebelum menjalankan kode ini, instal psycopg2
dengan mengikuti petunjuk dalam dokumentasi Psycopg
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))
Jika Anda ingin terhubung ke instans DB melalui proksi, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.