RDS の IAM データベース認証の利用の検討

対応する RDS 環境で IAM 認証を利用し、長期間使うパスワードへの依存を減らします。

説明

RDS の IAM データベース認証は、対応する MariaDB、MySQL、PostgreSQL 環境で短期間有効な認証トークンを使って接続する仕組みです。利用しない場合は、別のデータベース認証情報を保管・更新する必要が生じます。

想定される影響

長期間使うパスワードが漏えいすると、変更するまで悪用されるおそれがあります。複数のアプリケーションに配布した認証情報の管理負担も増えます。

対処方法

エンジン、バージョン、インスタンスタイプ、アプリケーションの対応状況を確認してから enable_iam_database_authentication を有効にしてください。データベースユーザー、IAM 権限、TLS 接続も設定する必要があり、インスタンスの設定だけで既存のログイン方式が切り替わるわけではありません。

例

この例はインスタンスの IAM 認証設定だけを比較しています。対応するインスタンスクラスを指定し、ユーザーとアプリケーションは別途設定してください。

変更前

yaml
- name: RDS 인스턴스 생성
  amazon.aws.rds_instance:
    engine: mariadb
    id: test-db
    state: present
    db_instance_class: "{{ db_instance_class }}"
    username: "{{ username }}"
    password: "{{ password }}"
    allocated_storage: "{{ allocated_storage }}"
    enable_iam_database_authentication: false

変更後

yaml
- name: RDS 인스턴스 생성
  amazon.aws.rds_instance:
    engine: mariadb
    id: test-db
    state: present
    db_instance_class: "{{ db_instance_class }}"
    username: "{{ username }}"
    password: "{{ password }}"
    allocated_storage: "{{ allocated_storage }}"
    enable_iam_database_authentication: true

参考資料