ページの先頭行へ戻る
Enterprise Postgres 15 セキュリティ運用ガイド

7.1 セットアップ

本機能は、PostgreSQLのEXTENSIONとして提供されます。名前は、pgx_confidential_management_supportです。以下のようにCREATE EXTENSION文を使って、拡張をデータベースクラスタに登録してください。

これはスーパーユーザーが実行しなければなりません。なぜならば、この拡張はPostgreSQLのイベントトリガを登録するからです。イベントトリガを登録することで、テーブルなどのデータベースオブジェクトが削除されたときに、機密管理支援機能が管理する情報の中から、関連する情報を削除します。

この拡張は、どのスキーマに対しても作成することができます。

CREATE EXTENSION pgx_confidential_management_support

注意

  • 以降で説明する様々な定義は、この拡張に含まれるテーブルに登録されます。従って、この拡張をDROP EXTENSION文によって削除すると、これらの定義もすべて削除される点に注意してください。

  • スーパーユーザーが機密管理ロールを兼ねる場合や、機密管理ロールを1つだけ用意する場合には、セットアップは完了です。機密管理ロールについては、“7.2.2 機密管理ロールを決める”を参照してください。しかし、もし複数の機密管理ロールが、それぞれ異なる機密マトリクスを管理するならば、互いの機密マトリクスを互いに操作できないようにしなければなりません。そのために、以下のように、スーパーユーザーが、製品が提供するスクリプトを実行してください。このスクリプトは、機密管理支援機能が提供するテーブルに、行レベルセキュリティ機能のポリシーを定義します。${install_dir}は、製品をインストールしたディレクトリを指します。

    psql -f ${install_dir}/share/extension/pgx_confidential_management_support_policy.sql
  • CREATE EXTENSIONを実行すると、この拡張に含まれるテーブルについて、publicへSELECT権限が付与されています。publicからこの権限を剥奪しないでください。例えば、一般ユーザーがテーブルを削除したときに、機密管理支援機能の定義も変更するべきかをイベントトリガが確認します。この確認のために必要な権限です。また、pg_catalogがそうであるように、これらのテーブルの情報をすべてのユーザーが知ったとしても、問題はありません。