Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Python (Boto3) - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Python (Boto3)

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk Python (Boto3)

Prasyarat

Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi 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 dalam dokumentasi. AWS SDK untuk Python (Boto3)

Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB.

Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK untuk Python (Boto3), ditemukan di AWS situs.

Ubah nilai variabel berikut sesuai kebutuhan:

  • ENDPOINT – Titik akhir klaster DB yang ingin Anda akses

  • PORT – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda

  • USER – Akun basis data yang ingin Anda akses

  • REGION— AWS Wilayah tempat cluster DB berjalan

  • DBNAME – Basis data yang ingin Anda akses

  • SSLCERTIFICATE – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

    Untuk ssl_ca, tentukan sertifikat SSL. Untuk mengunduh sertifikat SSL, lihat Menggunakan SSL/TLS untuk mengenkripsi koneksi ke .

catatan

Anda tidak dapat menggunakan data DNS Route 53 kustom atau titik akhir kustom Aurora sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

Kode ini terhubung ke klaster DB Aurora MySQL.

Sebelum menjalankan kode ini, instal driver PyMy SQL dengan mengikuti instruksi dalam Indeks Paket 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(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))

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

Sebelum menjalankan kode ini, instal psycopg2 dengan mengikuti petunjuk dalam dokumentasi 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))

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.