監査ログの保管と分析
監査ログをアーカイブすると、アクティブ監査ログはアーカイブ・ディレクトリーに移され、サーバーは新しいアクティブ監査ログの書き込みを開始します。 後で、アーカイブ・ログから区切り文字で区切られているファイルにデータを抽出し、それらのファイルから Db2® データベース表にデータをロードして分析することができます。
監査ログの場所を構成すると、監査ログを大容量の高速ディスクに配置できます。複数メンバー・データベース環境 ( Db2 pureScale 環境やパーティション・データベース環境など) のメンバーごとに別々のディスクを用意するオプションもあります。 複数メンバー・データベース環境では、アクティブ監査ログのパスを、メンバーごとに固有のディレクトリーにすることができます。 メンバーごとに固有のディレクトリーを使用すると、各メンバーが別々のディスクに書き込みを行うため、ファイルの競合を防ぐのに役立ちます。
db2audit configure datapath /auditlog archivepath /auditarchive
db2audit を使用して設定された監査ログの保管場所は、インスタンス内のすべてのデータベースに適用されます。複数メンバー・データベース環境におけるアクティブ監査ログのパス (datapath)
- datapath パラメーターを指定する際に、データベース・メンバー式を使用します。 データベース・メンバー式を使用すると、監査ログ・ファイルのパスにメンバー番号を含めることができるため、結果的にデータベース・メンバーごとに異なるパスになります。
- すべてのメンバーで同一の共有ドライブを使用します。
db2audit configure datapath '/pathForNode $N'
次のパスが使用されます。- /pathForMember10
- /pathForMember20
- /pathForMember30
アクティブ監査ログのアーカイブ
db2audit ツールでは、システム管理者がインスタンス監査ログとデータベース監査ログの両方をアーカイブできるほか、アーカイブされているいずれかのタイプのログから監査データを抽出することもできます。
セキュリティー管理者、または監査ルーチンの EXECUTE 特権をセキュリティー管理者から付与されたユーザーは、SYSPROC.AUDIT_ARCHIVE ストアード・プロシージャーを実行することにより、アクティブ監査ログをアーカイブできます。 ログからデータを抽出して区切りファイルにロードするには、SYSPROC.AUDIT_DELIM_EXTRACT ストアード・プロシージャーを使用できます。
- アプリケーションがストアード・プロシージャー SYSPROC.AUDIT_ARCHIVE を使用してアクティブ監査ログのアーカイブを定期的に実行するように、スケジュールを作成します。
- どのアーカイブされたログ・ファイルについて調べるかを決めます。 SYSPROC.AUDIT_LIST_LOGS 表関数を使用して、アーカイブされた監査ログをすべてリストします。
- ログからデータを抽出して区切りファイルにロードするため、ファイル名を SYSPROC.AUDIT_DELIM_EXTRACT ストアード・プロシージャーにパラメーターとして渡します。
- 監査データを分析用の Db2 データベース表にロードします。
アーカイブの途中で、アーカイブ・パスのディスク・スペースがいっぱいになってしまった、あるいはアーカイブ・パスが存在しない、などの問題が発生した場合は、アーカイブ・プロセスは失敗し、 監査ログ・データのパスに .bk という拡張子を持つ中間ログ・ファイルが生成されます (例えば db2audit.instance.log.0.20070508172043640941.bk)。 (アーカイブ・パスに十分なディスク・スペースを割り振ることによって、またはアーカイブ・パスを作成することによって) 問題が解決されたなら、この中間ログをアーカイブ・パスに移動させてください。 アーカイブ・パスに移動させた後は、この中間ログは正常にアーカイブされたログと同じ方法で扱うことができます。
複数メンバー・データベース環境におけるアクティブ監査ログのアーカイブ
db2audit archive to /auditarchive
すると、以下のファイルが作成されます。- /auditarchive/db2audit.log.10.timestamp
- /auditarchive/db2audit.log.20.timestamp
- /auditarchive/db2audit.log.30.timestamp
- 現行メンバーのみのアーカイブを実行する場合は、db2audit コマンドに node オプションを使用します。
- すべてのメンバーでアーカイブを実行する場合は、db2_all コマンドを使用します。以下に例を示します。
これにより、コマンドが呼び出されるメンバーを示す DB2NODE 環境変数が設定されます。db2_all db2audit archive node to /auditarchive
- メンバー 10 で:
db2audit archive node 10 to /auditarchive
- メンバー 20 で:
db2audit archive node 20 to /auditarchive
- メンバー 30 で:
db2audit archive node 30 to /auditarchive
ログのアーカイブと表へのデータ抽出の例
CALL SYSPROC.AUDIT_ARCHIVE( '/auditarchive', -2 )
セキュリティー手順の一環として、この企業は、監査データ内で注意を必要とする多くの疑わしい動作や許可されないアクティビティーを識別し、定義しています。 この企業は、1 つ以上の監査ログからすべてのデータを抽出し、それをリレーショナル表に置き、SQL 照会を使用してこれらのアクティビティーを探すことを希望しています。 監査する適切な区分を判別してあり、データベースや他のデータベース・オブジェクトには必要な監査ポリシーが関連付けられています。
CALL SYSPROC.AUDIT_DELIM_EXTRACT(
'', '', '/auditarchive', 'db2audit.%.200604%', '' )
別の例として、SYSPROC.AUDIT_DELIM_EXTRACT ストアード・プロシージャーを呼び出し、調べているタイム・スタンプが付いているファイルから、EXECUTE 区分の成功イベントについてのアーカイブされた監査レコードと、CHECKING 区分の失敗イベントについてのアーカイブされた監査レコードを抽出できます。CALL SYSPROC.AUDIT_DELIM_EXTRACT( '', '', '/auditarchive',
'db2audit.%.20060419034937', 'category
execute status success, checking status failure );