pymysqlでRDS(Aurora)にIAM認証でアクセスする


mysql.connectorの例しか見つからなかったので、pymysqlで接続する場合のサンプルを上げておきます。

import boto3
import pymysql

# RDSの情報をセット
RDS_HOST = 
RDS_USER = 
RDS_PORT = 
RDS_REGION = 
RDS_DATABASE = 

rds = boto3.client('rds')


def create_connection():
    # 認証用のトークンを設定
    password = rds.generate_db_auth_token(
        DBHostname=RDS_HOST,
        Port=RDS_PORT,
        DBUsername=RDS_USER,
        Region=RDS_REGION
    )

    connection = pymysql.connect(
        host=RDS_HOST,
        user=RDS_USER,
        password=password,
        db=RDS_DATABASE,
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor,
        ssl={'ca': 'rds-combined-ca-bundle.pem'}
    )

    return connection