ユーザーパスワード管理の委任と制御
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
権限を持つ必要があります。