監査ログ設計 かんさろぐせっけい
監査ログ変更履歴イベントログトレーサビリティコンプライアンスWho/When/What
監査ログって何のために記録するの?
簡単に言うとこんな感じ!
監査ログは「誰が・いつ・何を・どう変えたか」の全記録だよ!「このデータは誰が消したの?」「いつ価格が変わったの?」を後から調べられるようにするための台帳。コンプライアンスや事故調査でも欠かせない仕組みなんだ。
監査ログ設計とは
監査ログ(Audit Log / 監査証跡) とは、システム上のデータ変更・アクセス・操作を「誰が・いつ・何を・どのように変更したか」の形で記録したログです。
金融・医療・個人情報を扱うシステムでは法令上の要件として定められることも多く、内部統制・セキュリティインシデント調査・コンプライアンス対応において不可欠な設計要素です。
監査ログの基本設計
テーブル設計例
CREATE TABLE audit_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
table_name VARCHAR(100) NOT NULL, -- 変更対象テーブル
record_id BIGINT NOT NULL, -- 変更対象レコードID
action VARCHAR(20) NOT NULL, -- INSERT/UPDATE/DELETE
old_values JSON, -- 変更前の値
new_values JSON, -- 変更後の値
changed_by BIGINT NOT NULL, -- 操作者のユーザーID
changed_at TIMESTAMP NOT NULL, -- 操作日時
ip_address VARCHAR(45), -- 操作元IPアドレス
user_agent TEXT -- ブラウザ情報
);
監査ログの実装方式
| 方式 | 内容 | メリット | デメリット |
|---|---|---|---|
| アプリケーション層 | ビジネスロジックで記録 | 柔軟性が高い | 記録漏れのリスク |
| DBトリガー | テーブルのトリガーで自動記録 | 漏れなく記録 | DBに依存・パフォーマンス影響 |
| CDC(変更データキャプチャ) | DBのバイナリログを解析 | 非侵入的・高信頼 | インフラの追加が必要 |
歴史と背景
- SOX法(2002年):米国の企業会計改革法で内部統制としてのログ保存が義務化
- GDPR(2018年):個人データの処理記録義務により監査ログの重要性が増す
- 日本の個人情報保護法改正(2022年):アクセスログの整備が実質的な要件に