PostgreSQL のロールとアクセス権限について - Amazon Aurora

PostgreSQL のロールとアクセス権限について

AWS Management Console を使用してAurora PostgreSQL DB クラスター を作成すると、管理者アカウントが同時に作成されます。次のスクリーンショットに示すように、デフォルトでは postgres という名前になります。


        「データベースを作成」ページの認証情報のデフォルトのログイン ID は postgres です。

デフォルト設定 (postgres) を受け入れるのではなく、別の名前を選択することもできます。この場合、選択する名前はアルファベットで始まり、1 文字以上 16 文字以下の英数字である必要があります。このガイドでは、わかりやすくするために、このメインユーザーアカウントをデフォルトの値 (postgres) で表記しています。

AWS Management Console ではなくcreate-db-cluster AWS CLI を使用する場合は、master-username パラメータと一緒に渡すことでユーザー名を作成します。詳細については、ステップ 2: Aurora PostgreSQL DB クラスターを作成する をご参照ください。

AWS Management Console、AWS CLI、または Amazon RDS API のいずれを使用する場合でも、またデフォルトの postgres 名を使用するか、別の名前を選択するかにかかわらず、この最初のデータベースユーザーアカウントは rds_superuser グループのメンバーであり、rds_superuser 権限を持つことになります。

rds_superuser ロールを理解する

PostgreSQL では、ロールは、データベース内のさまざまなオブジェクトに対して、ユーザー、グループ、またはグループやユーザーに与えられた特定のアクセス権限を定義することができます。CREATE USERCREATE GROUP に対する PostgreSQL コマンドは、データベースユーザーを区別するために、より一般的な、特定のプロパティを持つ CREATE ROLE に置き換えられました。データベースユーザーは、LOGIN 権限を持つロールと考えることができます。

注記

CREATE USER および CREATE GROUP コマンドは引き続き使用できます。詳細については、PostgreSQL のドキュメントの「データベースロール」セクションを参照してください。

postgres ユーザーは、Aurora PostgreSQL DB クラスター で最も権限があるデータベースユーザーです。ユーザーには、次の CREATE ROLE ステートメントで定義される特性があります。

CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'

特に指定がない限り、プロパティ NOSUPERUSERNOREPLICATIONINHERIT、および VALID UNTIL 'infinity' が CREATE ROLE のデフォルトオプションです。

デフォルトでは、postgres には rds_superuser ロールに付与された権限と、ロールとデータベースを作成するアクセス許可があります。rds_superuser ロールでは、postgres ユーザーによる次の操作を許可します。

  • Aurora PostgreSQL」を参照してください。詳細については、エクステンションと外部データラッパーの使用 をご参照ください。

  • ユーザーのロールを作成し、ユーザーに権限を付与します。詳細については、PostgreSQL のドキュメントの「CREATE ROLE」および「GRANT」セクションを参照してください。

  • データベースの作成 詳細については、PostgreSQL のドキュメントの「CREATE DATABASE」を参照してください。

  • これらの権限を持たないユーザーロールに対する rds_superuser 権限を付与し、必要に応じてそれらの権限を取り消します。このロールは、スーパーユーザータスクを実行するユーザーにのみ付与することをお勧めします。つまり、データベース管理者 (DBA) またはシステム管理者にこのロールを付与できます。

  • rds_superuser ロールを持たないデータベースユーザーに rds_replication ロールを付与 (または取り消し) します。

  • rds_superuser ロールを持たないデータベースユーザーに rds_password ロールを付与 (または取り消し) します。

  • pg_stat_activity ビューを使用して、すべてのデータベース接続に関するステータス情報を取得します。必要に応じて、rds_superuserpg_terminate_backend または pg_cancel_backend を使用して接続を停止できます。

CREATE ROLE postgres... ステートメントで、postgres ユーザーロールは PostgreSQL の superuser アクセス許可を特に禁止することがわかります。Aurora PostgreSQL はマネージドサービスのため、ホスト OS へのアクセスや、PostgreSQL superuser アカウントを使用した接続はできません。スタンドアロンの PostgreSQL で superuser のアクセスが必要な作業の多くは、Aurora で自動的に管理されます。

権限の付与に関する詳細については、PostgreSQL のドキュメントの「GRANT」を参照してください。

rds_superuser ロールは、Aurora PostgreSQL DB クラスターにおけるいくつかの事前定義済みロールの 1 つです。

注記

PostgreSQL 13 以前のリリースでは、定義済みロールはデフォルトロールと呼ばれていました。

次のリストに、新しい Aurora PostgreSQL DB クラスターのために自動的に作成される他の定義済みロールの一部を示します。定義済みロールとその権限は変更できません。これらの定義済みロールに対して削除、名前の変更、変更を行うことはできません。それらの操作を試みると、エラーが発生します。

  • rds_password - データベースユーザーのパスワードを変更し、パスワード制約を設定できるロールです。rds_superuser ロールにはデフォルトでこのロールが付与され、データベースユーザーにロールを付与できます。詳細については、「PostgreSQL データベースへのユーザーアクセスのコントロール」を参照してください。

    • 14 より前のバージョンの RDS for PostgreSQL の場合、rds_password ロールはパスワードを変更し、データベースユーザーと rds_superuser ロールを持つユーザーのパスワード制約を設定できます。RDS for PostgreSQL 14 以降のバージョンでは、rds_password ロールがユーザーのパスワードを変更し、パスワード制約を設定できるのは、データベースユーザーに対してのみです。rds_superuser ロールを持つユーザーのみが、rds_superuser ロールを持つ他のユーザーに対して上記のアクションを実行できます。

  • rdsadmin - superuser 権限を持つ管理者がスタンドアロンの PostgreSQL データベースで行う管理タスクの多くを処理するために作成されるロールです。このロールは、Aurora PostgreSQL によって多くの管理タスクのために内部的に使用されます。

定義済みのロールをすべて表示するには、Aurora PostgreSQL DB クラスターのプライマリインスタンス に接続し、psql \du メタコマンドを使用します。出力は次のとおりです。

List of roles Role name | Attributes | Member of --------------+-----------------------------------+------------------------------------ postgres | Create role, Create DB +| {rds_superuser} | Password valid until infinity | rds_superuser | Cannot login | {pg_monitor,pg_signal_backend, | +| rds_replication,rds_password} ...

出力では、rds_superuser がデータベースユーザーロールではない (ログインできない) が、他の多くのロールの特権を持っていることがわかります。また、そのデータベースユーザー postgresrds_superuser ロールのメンバーであることも確認できます。前述のように、postgres が Amazon RDS コンソールの [Create database] (データベースを作成) ページのデフォルト値です。別の名前を選択した場合、代わりにその名前がロールのリストに表示されます。

注記

Aurora PostgreSQL バージョン 15.2 と 14.7 では、rds_superuser ロールの限定的動作が導入されました。Aurora PostgreSQL ユーザーには、ユーザーに rds_superuser ロールが付与されている場合でも、対応する接続対象のデータベースで CONNECT 権限を付与する必要があります。Aurora PostgreSQL バージョン 14.7 と 15.2 より前のバージョンでは、ユーザーにrds_superuser 権限が付与されていれば、どのデータベースとシステムテーブルにも接続できました。この制限的動作は、AWS そして、セキュリティの継続的な改善に取り組むという Amazon Aurora コミットメントに整合しています。

上記の機能強化が影響する場合は、アプリケーションのそれぞれのロジックを更新してください。

PostgreSQL データベースへのユーザーアクセスのコントロール

PostgreSQL の新しいデータベースは、常にデータベースの public スキーマに、すべてのデータベースユーザーとロールがオブジェクトを作成できるようなデフォルトの権限セットで作成されます。これらの権限により、例えば、データベースユーザーがデータベースに接続し、接続しながら一時テーブルを作成することができます。

Aurora PostgreSQL DB クラスターのプライマリノード に作成するデータベースインスタンスへのユーザーアクセスをよりよく制御するために、これらのデフォルトの public 権限を取り消すことを推奨します。その後、次の手順で示すように、データベースのユーザーに特定の権限をより詳細に付与します。

新しいデータベースインスタンスのロールと権限を設定するには

全員がデータベースへの読み取り/書き込みアクセスを必要とする複数の研究者が使用するために、新しく作成された Aurora PostgreSQL DB クラスター 上にデータベースをセットアップしているとします。

  1. psql (または pgAdmin) を使用して、Aurora PostgreSQL DB クラスター上のプライマリ DB インスタンス に接続します。

    psql --host=your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password

    プロンプトが表示されたら、パスワードを入力します。psql クライアントが接続し、プロンプトとしてデフォルトの管理用接続データベースである postgres=> を表示します。

  2. データベースユーザーが public スキーマでオブジェクトを作成できないようにするには、次の操作を行います。

    postgres=> REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE
  3. 次に、新しいデータベースインスタンスを作成します。

    postgres=> CREATE DATABASE lab_db; CREATE DATABASE
  4. この新しいデータベースの PUBLIC スキーマからすべての権限を取り消します。

    postgres=> REVOKE ALL ON DATABASE lab_db FROM public; REVOKE
  5. データベースユーザーのロールを作成します。

    postgres=> CREATE ROLE lab_tech; CREATE ROLE
  6. このロールを持つデータベースユーザーに、データベースに接続する機能を付与します。

    postgres=> GRANT CONNECT ON DATABASE lab_db TO lab_tech; GRANT
  7. lab_tech ロールを持つすべてのユーザーに、このデータベースのすべての権限を付与します。

    postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_db TO lab_tech; GRANT
  8. 次のように、データベースユーザーを作成します。

    postgres=> CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me'; CREATE ROLE postgres=> CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me'; CREATE ROLE
  9. これら 2 人のユーザーに lab_tech ロールに関連付けられた権限を付与します。

    postgres=> GRANT lab_tech TO lab_user1; GRANT ROLE postgres=> GRANT lab_tech TO lab_user2; GRANT ROLE

この時点で、lab_user1lab_user2lab_db データベースに接続できます。この例は、複数のデータベースインスタンスの作成、異なるスキーマの作成、制限されたアクセス許可の付与などを含む、エンタープライズで使用するためのベストプラクティスに従ったものではありません。詳細な情報と追加のシナリオについては、「PostgreSQL ユーザーとロールの管理」を参照してください。

PostgreSQL データベースでの権限の詳細については、PostgreSQL のドキュメントの GRANT コマンドを参照してください。

ユーザーパスワード管理の委任と制御

DBA は、ユーザーパスワードの管理を委任する場合があります。または、データベースユーザーがパスワードを変更したり、パスワードの有効期間などのパスワード制約を再設定したりしないようにする場合もあります。選択したデータベースユーザーのみがパスワード設定を変更できるようにするには、制限されたパスワード管理の機能をオンにします。この機能をアクティブにすると、rds_password ロールを付与されたデータベースユーザーのみがパスワードを管理できます。

注記

制限されたパスワード管理を使用するには、 Aurora PostgreSQL DB クラスターで Amazon Aurora PostgreSQL 10.6 以上を実行している必要があります。

次に示すように、デフォルトではこの機能は off になっています。

postgres=> SHOW rds.restrict_password_commands; rds.restrict_password_commands -------------------------------- off (1 row)

この機能をオンにするには、カスタムパラメータグループを使用して、rds.restrict_password_commands の設定を 1 に変更します。設定を有効にするには、Aurora PostgreSQL のプライマリ DB インスタンス を必ず再起動してください。

この機能をアクティブにすると、次の SQL コマンドには rds_password 権限が必要になります。

CREATE ROLE myrole WITH PASSWORD 'mypassword'; CREATE ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01'; ALTER ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01'; ALTER ROLE myrole WITH PASSWORD 'mypassword'; ALTER ROLE myrole VALID UNTIL '2023-01-01'; ALTER ROLE myrole RENAME TO myrole2;

ロールの名前の変更 (ALTER ROLE myrole RENAME TO newname) は、パスワードが MD5 ハッシュアルゴリズムを使用する場合にも制限されます。

この機能が有効な場合、rds_password ロールのアクセス許可なしでこれらの SQL コマンドの実行を試みると、次のエラーが発生します。

ERROR: must be a member of rds_password to alter passwords

rds_password は、パスワード管理専用の少数のロールにのみ付与することをお勧めします。rds_superuser 権限を持たないデータベースユーザーに rds_password 権限を付与する場合は、CREATEROLE 属性も付与する必要があります。

パスワード要件 (クライアント側の有効期限や必要な複雑さなど) を確認してください。パスワード関連の変更に独自のクライアント側ユーティリティを使用する場合、そのユーティリティは rds_password のメンバーであり、CREATE ROLE 権限を持つ必要があります。

PostgreSQL のパスワード暗号化に SCRAM を使用する

SCRAM (Salted Challenge Response Authentication Mechanism) は、パスワードを暗号化するための PostgreSQL のデフォルトのメッセージダイジェスト (MD5) アルゴリズムの代替手段です。SCRAM 認証メカニズムは MD5 よりも安全であると見なされます。これら 2 つの異なるパスワードを保護する方法の詳細については、PostgreSQL のドキュメントの「パスワード認証」を参照してください。

Aurora PostgreSQL DB クラスターに対しては、パスワード暗号化方式として MD5 ではなく SCRAM を使用することをお勧めします。Aurora PostgreSQL 14 リリース現在、SCRAM はバージョン 10、11、12、13、14 を含む利用可能なすべての Aurora PostgreSQL バージョンでサポートされています。これは、パスワード認証と暗号化のために scram-sha-256 アルゴリズムを使用する暗号化チャレンジレスポンスのメカニズムです。

SCRAM をサポートするために、クライアントアプリケーションのライブラリを更新する必要があります。例えば、42.2.0 より前の JDBC バージョンで SCRAM はサポートされていません。詳細については、PostgreSQL JDBC ドライバーのドキュメントの「PostgreSQL JDBC ドライバー」を参照してください。その他の PostgreSQL ドライバーおよび SCRAM サポートの一覧については、PostgreSQL のドキュメントの「ドライバーの一覧」を参照してください。

注記

Aurora PostgreSQL バージョン 14 以上では、新しい DB クラスターに対してデフォルトでパスワード暗号化に scram-sha-256 をサポートしています。つまり、デフォルトの DB クラスターパラメータグループ (default.aurora-postgresql14) が持っている password_encryption 値を scram-sha-256 に設定します。

SCRAM を要求するために Aurora PostgreSQL DB クラスターを設定する

Aurora PostgreSQL 14.3 以降のバージョンでは、scram-sha-256 アルゴリズムを使用するパスワードのみを受け入れるために、Aurora PostgreSQL DB クラスターに を要求できます。

重要

PostgreSQL データベースを使用する既存の RDS プロキシでは、SCRAM のみを使用するようにデータベース認証を変更すると、プロキシは最大 60 秒間使用できなくなります。この問題を回避するには、以下のいずれかの方法で対応します。

  • データベースが SCRAMMD5 認証の両方を許可していることを確認します。

  • SCRAM 認証のみを使用するには、新しいプロキシを作成し、アプリケーショントラフィックを新しいプロキシに移行してから、以前にデータベースに関連付けられていたプロキシを削除します。

システムに変更を加える前に、次の完全なプロセスを理解していることを確認してください。

  • すべてのデータベースユーザーのすべてのロールとパスワードの暗号化に関する情報を取得します。

  • パスワードの暗号化を制御するパラメータを指定するために、Aurora PostgreSQL DB クラスター のパラメータ設定を再確認してください。

  • Aurora PostgreSQL DB クラスター でデフォルトのパラメータグループを使用する場合は、カスタムの DB クラスターのパラメータグループ を作成して、それを Aurora PostgreSQL DB クラスター に適用し、必要なときにパラメータを変更できるようにする必要があります。Aurora PostgreSQL DB クラスター がカスタムパラメータグループを使用している場合、必要に応じて、プロセスの後で必要なパラメータを変更できます。

  • password_encryption パラメータを scram-sha-256 に変更します。

  • パスワードを更新する必要があることをすべてのデータベースユーザーに通知します。postgres アカウントに同じ操作を行います。新しいパスワードは暗号化され、scram-sha-256 アルゴリズムを使用して保存されます。

  • 暗号化の種類を使用して、すべてのパスワードが暗号化されていることを確認します。

  • すべてのパスワードで scram-sha-256 が使用されている場合、rds.accepted_password_auth_method パラメータを md5+scram から scram-sha-256 に変更できます。

警告

rds.accepted_password_auth_method を scram-sha-256 のみに変更した後、md5 で暗号化されたパスワードを持つすべてのユーザー (ロール) は接続できなくなります。

Aurora PostgreSQL DB クラスターに SCRAM を要求する準備

お使いの Aurora PostgreSQL DB クラスター、に変更を加える前に、既存のデータベースユーザーアカウントをすべて確認します。また、パスワードに使用されている暗号化の種類を確認してください。確認するためには、rds_tools 拡張機能を使用します。この拡張機能は、Aurora PostgreSQL 13.1 以上のリリースでサポートされています。

データベースユーザー (ロール) とパスワードの暗号化方法のリストを取得するには
  1. 次のように、psql を使用して Aurora PostgreSQL DB クラスターのプライマリ インスタンスを に接続します。

    psql --host=cluster-name-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. rds_tools 拡張機能をインストールします。

    postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION
  3. ロールと暗号化のリストを取得します。

    postgres=> SELECT * FROM rds_tools.role_password_encryption_type();

    以下のような出力結果が表示されます。

    rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | md5 user_465 | md5 postgres | md5 (8 rows)

カスタム DB クラスターのパラメータグループの作成

注記

Aurora PostgreSQL DB クラスター で既にカスタムパラメータグループを使用している場合、新しいパラメータグループを作成する必要はありません。

Aurora のパラメータグループの概要については、「DB クラスターのパラメータグループの作成」を参照してください。

パスワードに使用されるパスワード暗号化タイプは、1 つのパラメータ password_encryption で設定します。Aurora PostgreSQL DB クラスター で許可される暗号化は、別のパラメータ rds.accepted_password_auth_method で設定されます。これらのいずれかをデフォルト値から変更するには、カスタム DB クラスターのパラメータグループ を作成して、クラスター に適用する必要があります。

また、AWS Management Console または RDS API を使用して、カスタムの DB クラスターのパラメータグループ を作成することもできます。詳細については、「DB クラスターのパラメータグループの作成」を参照してください。

これで、カスタムパラメータグループを DB インスタンスに関連付けることができます。

カスタム DB クラスターのパラメータグループを作成するには
  1. create-db-cluster-parameter-group CLI コマンドを使用して、クラスターのカスタムパラメータグループを作成します。次の例では aurora-postgresql13 をこのカスタムパラメータグループのソースとして使用します。

    Linux、macOS、Unix の場合:

    aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name 'docs-lab-scram-passwords' \ --db-parameter-group-family aurora-postgresql13 --description 'Custom DB cluster parameter group for SCRAM'

    Windows の場合:

    aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name "docs-lab-scram-passwords" ^ --db-parameter-group-family aurora-postgresql13 --description "Custom DB cluster parameter group for SCRAM"

    これで、カスタムパラメータグループをクラスターに関連付けることができます。

  2. modify-db-cluster CLI コマンドを使用して、このカスタムパラメータグループを Aurora PostgreSQL DB クラスターに適用します。

    Linux、macOS、Unix の場合:

    aws rds modify-db-cluster --db-cluster-identifier 'your-instance-name' \ --db-cluster-parameter-group-name "docs-lab-scram-passwords

    Windows の場合:

    aws rds modify-db-cluster --db-cluster-identifier "your-instance-name" ^ --db-cluster-parameter-group-name "docs-lab-scram-passwords

    Aurora PostgreSQL DB クラスターとカスタム DB クラスターパラメータグループ、を再同期するには、プライマリインスタンスおよびクラスターの他のすべてのインスタンスを再起動します。

SCRAM を使用するためのパスワード暗号化の設定

Aurora PostgreSQL DB クラスター で使用されるパスワード暗号化メカニズムは、password_encryption パラメータの DB クラスターのパラメータグループ に設定されています。指定できる値は、未設定、md5 または scram-sha-256 です。デフォルト値は、次のように Aurora PostgreSQL のバージョンによって異なります。

  • Aurora PostgreSQL 14 — デフォルトは scram-sha-256

  • Aurora PostgreSQL 13 — デフォルトは md5

Aurora PostgreSQL DB クラスター にアタッチされているカスタム DB クラスターパラメータグループ では、パスワード暗号化パラメータの値を変更できます。


          次では、RDS コンソールには、Aurora PostgreSQL の password_encryption パラメータのデフォルト値が表示されます。
パスワード暗号化の設定を scram-sha-256 に変更するには
  • 次のように、パスワード暗号化の値を scram-sha-256 に設定します。パラメータが動的であるため、変更をすぐに適用できます。そのため、変更を有効にするために再起動は不要です。

    Linux、macOS、Unix の場合:

    aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name \ 'docs-lab-scram-passwords' --parameters 'ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate'

    Windows の場合:

    aws rds modify-db-parameter-group --db-parameter-group-name ^ "docs-lab-scram-passwords" --parameters "ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate"

ユーザーロールのパスワードを SCRAM に移行する

以下に説明するように、ユーザーロールのパスワードを SCRAM に移行できます。

データベースユーザー (ロール) のパスワードを MD5 から SCRAM に移行するには
  1. 次のように、管理者ユーザーとしてログインします (デフォルトのユーザー名、postgres)。

    psql --host=cluster-name-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. 次のコマンドを使って、RDS for PostgreSQL DB インスタンスの password_encryption パラメータの設定を確認します。

    postgres=> SHOW password_encryption; password_encryption --------------------- md5 (1 row)
  3. このパラメータの値を scram-sha-256 に変更します。これは動的パラメータであるため、この変更を行った後でインスタンスを再起動する必要はありません。値をもう一度チェックして、次のように scram-sha-256 に設定されていることを確認します。

    postgres=> SHOW password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
  4. パスワードの変更をすべてのデータベースユーザーに通知します。アカウント postgres (rds_superuser 権限を持つデータベースユーザー) のパスワードも必ず変更してください。

    labdb=> ALTER ROLE postgres WITH LOGIN PASSWORD 'change_me'; ALTER ROLE
  5. Aurora PostgreSQL DB クラスターのすべてのデータベースに対してこの処理を繰り返します。

SCRAM を要求するようにパラメータを変更する

これがプロセスの最後のステップです。次の手順で変更した後、パスワードに引き続き md5 暗号化を使用するユーザーアカウント (ロール) は Aurora PostgreSQL DB クラスターにログインできません。

rds.accepted_password_auth_method は、ログインプロセス中に Aurora PostgreSQL DB クラスターがユーザーパスワードに対して受け入れる暗号化方式を指定します。デフォルト値は md5+scram です。つまり、どちらの方法も受け入れられます。次の画像では、このパラメータのデフォルト設定が表示されています。


        rds.accepted_password_auth_method パラメータに対してデフォルト値と許可された値が表示されている RDS コンソール。

このパラメータに指定できる値は、md5+scram または scram のみです。このパラメータの値を scram に変更すると、これが要件となります。

パスワードの SCRAM 認証を要求するようにパラメータ値を変更するには
  1. Aurora PostgreSQL DB クラスター の上のすべてのデータベースに対するすべてのデータベースユーザーパスワードが、パスワード暗号化に scram-sha-256 を使用していることを確認します。そのためには、rds_tools にロール (ユーザー) と暗号化タイプについて、次のようにクエリします。

    postgres=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | scram-sha-256 user_465 | scram-sha-256 postgres | scram-sha-256 ( rows)
  2. Aurora PostgreSQL DB クラスターのすべての DB インスタンスでクエリを繰り返します。

    すべてのパスワードで scram-sha-256 が使用されている場合は続行できます。

  3. 次のように、受け入れたパスワード認証の値を scram-sha-256 に設定します。

    Linux、macOS、Unix の場合:

    aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name 'docs-lab-scram-passwords' \ --parameters 'ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate'

    Windows の場合:

    aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name "docs-lab-scram-passwords" ^ --parameters "ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate"