G PostgreSQL監査データ収集リファレンス
PostgreSQLから監査データを収集する方法を学習します。
G.1 PostgreSQL監査データ収集の概要
PostgreSQLから監査データを収集する方法を学習します。
PostgreSQLは、多くの機能と組み合せてSQL言語を使用および拡張するオープン・ソース・オブジェクト・リレーショナル・データベース・システムです。最も複雑なデータ・ワークロードを安全に格納およびスケーリングします。PostgreSQLの原点はカリフォルニア大学バークレー校のPOSTGRESプロジェクトの一部であった1986年にさかのぼり、コア・プラットフォームでのアクティブな開発は30年を超えています。
PostgreSQLは、CSV形式で監査データを生成するように構成する必要があります。PostgreSQL監査拡張機能(またはpgaudit
)は、PostgreSQLが提供する標準ロギング機能を使用して、詳細なセッションおよびオブジェクト監査ロギングを提供します。
監査収集では、PostgreSQLデータベースにpgaudit
拡張機能をインストールする必要があります。Audit Vault Agentは、pgaudit
拡張機能がインストールされ、PostgreSQLがCSV形式で監査データを生成するように構成されている場合にのみ、PostgreSQL監査イベントの収集をサポートします。
G.3 PostgreSQLインストール後のステップ
PostgreSQLインストール後のステップを実行します。
PostgreSQLスーパーユーザー・パスワードの更新
デフォルトのスーパーユーザーpostgresは、PostgreSQLのインストール時に作成されます。postgresユーザーのパスワードを変更するには、次のコマンドを実行します。
sudo passwd postgres
PostgreSQL非スーパーユーザーの作成
データベースの作成に必要な権限を持つ新規ユーザーを作成し、パスワードを設定します。新しいユーザーを作成するには、次のコマンドを実行します。
sudo -u postgres createuser <new user name> -d -P
PostgreSQLデータベースでのroot権限の作成
PostgreSQLデータベースにpgaudit
拡張機能をインストールするには、ロールrootが必要です。次のステップを実行します。
-
次のコマンドを実行して、ユーザーpostgresとしてログインします。
sudo -u postgres psql
-
次のコマンドを
postgres
コマンド・プロンプトで実行します。create role root superuser;
alter user root with password <new password>;
alter role root with login;
-
次のコマンドを実行してPostgreSQL構成ファイルの場所を検索し、
postgres
コマンド・プロンプトを終了します。構成ファイルの詳細は、このトピックの後半で更新されるため、ノートにとります。show config_file;
exit;
サンプル・データベースの作成
-
新しく作成されたPostgreSQL非スーパーユーザーを使用してログインします。
-
次のコマンドを実行して、サンプル・データベースを作成します。
createdb <new database name>
-
次のコマンドを実行して、新規作成したPostgreSQL非スーパーユーザーで新規作成したデータベースにログインします。
psql <new database name>
-
exit
または\q
コマンドを実行して、データベース・プロンプトを終了します。
PostgreSQLデータベースへのpgaudit拡張機能のインストール
-
rootユーザーとしてログインし、次のコマンドを実行してPostgreSQL開発者ライブラリをインストールします。この項で使用するコマンドは、例としてPostgreSQL 11開発者ライブラリをインストールするためのものです。
yum install postgresql11-devel
-
pgaudit
拡張をインストールするには、次のリンクのコンパイルおよびインストールに関する項に示すステップに従います。 -
rootユーザーとしてログインします。PostgreSQL構成ファイルで、
shared_preload_libraries
パラメータを更新してpgaudit
を含め、ファイルを保存します。shared_preload_libraries = 'pgaudit'
-
rootユーザーとしてログインします。次のコマンドを実行して、PostgreSQLサービスを再起動します。
/sbin/service postgresql-11 stop
/sbin/service postgresql-11 start
PostgreSQLデータベースでのpgaudit監査ロギングの有効化
ノート:
すべてのPGAUDIT設定の詳細は、それぞれのドキュメントを参照してください。-
postgresユーザーとしてログインします。
sudo -u postgres psql
-
新しく作成したデータベースの監査を有効にするには、
postgres
コマンド・プロンプトで次のコマンドを実行します。CREATE EXTENSION pgaudit;
alter database <database name> set pgaudit.log = 'all';
SET pgaudit.log = 'ALL';
SET pgaudit.log_level = 'notice';
SET pgaudit.log_client = ON;
SET pgaudit.log_relation = ON;
SET pgaudit.log_parameter = ON;
SET pgaudit.log_catalog = ON;
alter system set log_connections=on;
alter system set log_disconnections=on;
alter system set log_statement='all';
alter system set pgaudit.log_parameter TO 'on';
SELECT pg_reload_conf();
PostgreSQL構成ファイルの監査ロギング・パラメータの更新
ノート:
すべてのPostgresSQLロギング関連パラメータの詳細は、それぞれのドキュメントを参照してください。rootユーザーとしてログインします。PostgreSQL構成ファイルを編集し、次のパラメータを次のように更新します。
log_destination = 'csvlog' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_min_messages = info log_checkpoints = on log_connections = on log_disconnections = on log_duration = on log_error_verbosity = verbose log_hostname = on log_statement = 'all' log_directory = '<full path of directory where log files need to be stored>' log_file_mode = 0640
rootユーザーとしてログインし、PostgreSQLサービスを再起動します。次のコマンド例は、PosgreSQL 11用です。
/sbin/service postgresql-11 stop
/sbin/service postgresql-11 start
監査ログの生成
-
新規作成したPostgreSQL非スーパーユーザーとしてログインします。次に、次のコマンドを使用して、新しく作成したデータベースにログインします。
psql <database name>
-
コマンドを実行して表を作成し、表にデータを挿入し、表からデータを問い合せます。
-
Oracle Linux 6のPostgreSQL 11 (例)インストールの場合、ログは次の場所にあります。
/var/lib/pgsql/11/data/log/