Amazon RDS で RDS Proxy に接続可能な DB ユーザを追加する方法について調査した内容を備忘録として残しておく

前提

以下の構成を想定 ※RDS は Aurora PostgreSQL Version 13.8

構成図

手順

参考

  1. DB ユーザ追加

    以下のコマンドを使用してユーザを追加する
    ※実運用時は、適宜必要な権限を付与する

postgres=> CREATE ROLE <<ロール名>> LOGIN PASSWORD '<<パスワード>>';

# 例. ログイン属性, 接続数制限なし, パスワード指定
postgres=> CREATE ROLE <<ロール名>> WITH LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOREPLICATION NOBYPASSRLS CONNECTION LIMIT -1 PASSWORD '<<パスワード>>';
  1. Secrets Manager にデータベース認証情報設定

    AWS Secrets Manager のマネジメントコンソールから、先ほど登録した DB ユーザに対応するシークレットを作成する

    • 設定
      • シークレットのタイプ: Amazon RDSデータベースの認証情報
      • ユーザー名: 該当のもの
      • パスワード: 該当のもの
      • DBインスタンス: 該当のもの
  2. RDS Proxy とシークレットの関連付け

    3-1. Amazon RDS のマネジメントコンソールから Amazon RDS Proxy に作成したシークレットを関連付ける
    3-2. 対象のAmazon RDS Proxy を選択し、アクション > 変更 の順に選択する
    3-3. 作成したシークレットを追加し、「プロキシを変更」ボタンを押下する

  3. IAM Role の変更

    Amazon RDS Proxy で利用している IAM Role に対して、secrets への権限許可を追加する
    ※Resource に追加

  4. 接続確認

psql -h <<RDS Proxy のエンドポイント>> -p 5432 -U <<作成した DB ユーザ>>