RDSで監査証跡機能を使うための設定
AWSのコンソール画面でRDSのパラメータグループのaudit_trailの設定値を変更する。
audit_trailのデフォルトの値が設定されてないため、仕様により変更できます。
今回はaudit_trailの値をDBに変更し、以下のようになりました。
監査証跡レコードを削除する機能の初期化
監査証跡のパラメータの事前確認
audit_trailの設定値は事前に設定した値(DB)となっているか、事前に確認します。
以下のような結果が出たら、監査証跡の機能は正常に有効化になった。
監査証跡機能の初期化
①DBMS_AUDIT_MGMTパッケージのINIT_CLEANUPプロシージャを使って、監査管理インフラストラクチャを設定し、監査証跡レコードのデフォルトのクリーンアップ間隔を設定します。
監査証跡表がSYSTEM表領域にある場合、プロシージャによってSYSAUX表領域に移動されます。
例)
SQL>
BEGIN
DBMS_AUDIT_MGMT.INIT_CLEANUP(
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
default_cleanup_interval => 999
);
END;
/
※DBMS_AUDIT_MGMTの定数の説明は以下のようです。
定数名 | 説明 |
AUDIT_TRAIL_ALL | すべての監査証跡タイプ。これには、標準データベース監査証跡(SYS.AUD$およびSYS.FGA_LOG$表)、オペレーティング・システム(OS)監査証跡およびXML監査証跡が含まれます。 |
AUDIT_TRAIL_AUD_STD | SYS.AUD$表の標準データベース監査証跡レコード。 |
AUDIT_TRAIL_DB_STD | 標準監査(SYS.AUD$)およびFGA監査(SYS.FGA_LOG$)レコードの両方。 |
AUDIT_TRAIL_FGA_STD | SYS.FGA_LOG$表の標準データベース・ファイングレイン監査(FGA)レコード。 |
AUDIT_TRAIL_FILES | オペレーティング・システム(OS)監査証跡およびXML監査証跡の両方。 |
AUDIT_TRAIL_OS | オペレーティング・システム監査証跡。オペレーティング・システム・ファイルに格納された監査レコードを参照します。 |
AUDIT_TRAIL_XML | XML監査証跡。XMLファイルに格納された監査レコードを参照します。 |
②DBMS_AUDIT_MGMTパッケージのINIT_CLEANUPプロシージャを実行したら、以下のエラーが出ると思います。
ORA-02002: error while writing to audit trail
ORA-00060: deadlock detected while waiting for resource
ORA-02002: error while writing to audit trail
ORA-00060: deadlock detected while waiting for resource
ORA-06512: at “SYS.DBMS_AUDIT_MGMT”, line 2333
ORA-06512: at “SYS.DBMS_AUDIT_MGMT”, line 617
ORA-06512: at line 2
エラー対応:
audit_trailの設定値はNONEに戻し、RDSを再起動してから、監査証跡の初期化を実行します。
監査証跡の初期化が完了したら、設定値をDBに変更する。
監査証跡を削除するレコードのアーカイブの設定
DBMS_AUDIT_MGMTパッケージのSET_LAST_ARCHIVE_TIMESTAMPプロシージャを使って、削除したい監査証跡のデータの日付を指定することができます。
last_archive_timeパラメーターには、アーカイブ済(不要)となった時刻を協定世界時(UTC)で指定します。
ローカル時刻からUTCに変換するにはSYS_EXTRACT_UTC関数が便利です。
例えば、30日以上古い標準監査データ(テーブル指定)が不要である場合、以下のように実行します。
SQL>
BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
last_archive_time => SYS_EXTRACT_UTC (CURRENT_TIMESTAMP – INTERVAL ‘30‘ DAY)
);
END;
/
監査証跡レコードを削除するの試し
DBMS_AUDIT_MGMTパッケージのCLEAN_AUDIT_TRAILプロシージャを使って不要になった監査データを削除できます。
use_last_arch_timestampパラメーター(デフォルトTRUE)は、SET_LAST_ARCHIVE_TIMESTAMPパッケージでアーカイブで設定した時刻の以前監査データを削除する設定です。
※FALSEに指定すると、全監査データを削除します。
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL (
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
use_last_arch_timestamp => TRUE
);
END;
/
OSの場合、監査レコードはオペレーティング・システム・ファイルに書き込まれます。
XMLの場合、監査レコードはオペレーティング・システム・ファイルにXML形式で書き込まれます。