マスキングポリシー管理ロールの設定
PostgreSQL 列マスキング拡張機能 を使用すると、pg_columnmask または rds_superuser テーブル所有者の権限を必要とせずに、マスキングポリシーの管理を特定のロールに委任できます。これにより、マスキングポリシーを作成、変更、削除できるユーザーをより詳細に制御できます。
マスキングポリシー管理権限を持つロールを設定するには、次の手順に従います。
-
ポリシー管理者ロールの作成 –
rds_superuserとして、マスキングポリシーの管理を担当する新しいロールを作成します。CREATE ROLE mask_admin NOLOGIN; -
PostgreSQL パラメータの設定 – カスタム DB クラスターパラメータグループで、
pgcolumnmask.policy_admin_rolnameエンジン設定パラメータを作成したロールの名前に設定します。pgcolumnmask.policy_admin_rolname = mask_adminこのエンジン設定パラメータは DB クラスターパラメータグループで設定でき、インスタンスの再起動は必要ありません。パラメータの更新の詳細については、「Amazon Aurora の DB クラスターパラメータグループのパラメータの変更」を参照してください。
-
ユーザーにロールを付与する
rds_superuserとして、マスキングポリシーを管理できるユーザーにmask_adminロールを付与します。CREATE USER alice LOGIN; CREATE USER bob LOGIN; GRANT mask_admin TO alice, bob;さらに、マスキングポリシーを管理するスキーマに対する USAGE 権限がユーザーに付与されていることを確認します。
GRANT USAGE ON SCHEMA hr TO alice, bob;
これで、ユーザー alice と bob がデータベースに接続すると、標準の pg_columnmask 拡張機能を使用して、スキーマに対する USAGE 権限を持つすべてのスキーマ内のすべてのテーブルでマスキングポリシーを作成、変更、削除できるようになります。