データベースオブジェクトの監査
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=- postgrespostgres --password --dbname=- labdb
- 
次のコマンドを使用して、 rds_pgauditというデータベースロールを作成します。labdb=>CREATE ROLE rds_pgaudit;CREATE ROLElabdb=>
- psqlセッションを終了します。- labdb=>- \q- 次のステップでは、AWS CLI を使用してカスタムパラメータグループの監査ログパラメータを変更します。 
- 
次の AWS CLI コマンドを使用して、 pgaudit.roleパラメータをrds_pgauditに設定します。デフォルトでは、このパラメータは空で、rds_pgauditは、唯一の許容値です。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-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-identifierwriter-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