データベースオブジェクトの監査
Aurora PostgreSQL DB クラスター に pgAudit をセットアップし、要件に合わせて設定すると、より詳細な情報が PostgreSQL ログに取得されます。例えば、デフォルトの PostgreSQL ログ設定はデータベーステーブルに変更が加えられた日付と時刻を識別しますが、pgAudit 拡張機能では、拡張機能のパラメータの設定方法に応じて、スキーマ、変更を行ったユーザー、その他の詳細をログエントリに含めることができます。監査を設定して、次の方法で変更を追跡できます。
セッションごとに、ユーザー別。セッションレベルでは、完全修飾コマンドテキストをキャプチャできます。
オブジェクトごとに、ユーザー別、データベース別。
オブジェクト監査機能は、システムで rds_pgaudit
ロールを作成し、そのロールをカスタムパラメータグループの pgaudit.role
パラメータに追加したときに有効になります。デフォルトでは、pgaudit.role
パラメータは設定されておらず、許容される値は rds_pgaudit
だけです。以下の手順は、pgaudit
が初期化され、pgAudit 拡張機能のセットアップ の手順に従って pgaudit
拡張機能を作成したことを前提としています。

この例に示すように、「LOG: AUDIT: SESSION」行には、テーブルとそのスキーマなどの詳細情報が表示されます。
オブジェクト監査をセットアップするには
psql
を使用して Aurora PostgreSQL DB クラスターのライターインスタンス、psql --host=
your-instance-name
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
postgres --password --dbname=labdb
-
次のコマンドを使用して、
rds_pgaudit
というデータベースロールを作成します。labdb=>
CREATE ROLE rds_pgaudit;
CREATE ROLE
labdb=>
psql
セッションを終了します。labdb=>
\q
次のステップでは、AWS CLI を使用してカスタムパラメータグループの監査ログパラメータを変更します。
-
次の AWS CLI コマンドを使用して、
pgaudit.role
パラメータをrds_pgaudit
に設定します。デフォルトでは、このパラメータは空で、rds_pgaudit
は、唯一の許容値です。aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region
-
次の AWS CLI コマンドを使用して Aurora PostgreSQL DB クラスターのライターインスタンス を再起動し、パラメータの変更を有効にします。
aws rds reboot-db-instance \ --db-instance-identifier
writer-instance
\ --regionaws-region
次のコマンドを実行して、
pgaudit.role
がrds_pgaudit
に設定されたことを確認します。SHOW pgaudit.role;
pgaudit.role ------------------ rds_pgaudit
pgAudit ログ記録をテストするには、監査するサンプルコマンドをいくつか実行します。例えば、次のコマンドを実行します。
CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1;
id ---- (0 rows)
データベースログには、次のようなエントリが含まれます。
...
2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT:
OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1;
...
ログの表示方法については、「Amazon Aurora ログファイルのモニタリング」を参照してください。
pgAudit 拡張機能の詳細については、GitHub で「pgAudit