📑 ログ検索

一致: 3 件(1 ページ中 1)

📜 ログ一覧

日時 Level Action Actor Target Resource Result Meta
ERROR EXPORT_DATA
hanako (u_003)
203.0.113.12
dataset sales_2024
/reports/export DENY
表示
{
    "policy": "PII_EXPORT_BLOCK",
    "fields": [
        "email",
        "phone"
    ]
}
WARN ROLE_ASSIGN
admin (u_admin)
198.51.100.7
role editor
/admin/roles SUCCESS
表示
{
    "reason": "project onboarding"
}
INFO USER_LOGIN
taro (u_001)
203.0.113.10
user u_001
/auth/login SUCCESS
表示
{
    "ua": "Chrome 139",
    "mfa": "TOTP"
}

概要

監査ログは、「誰が」「いつ」「どこで」「何を」「結果はどうだったか」を不変記録として残す仕組みです。インシデント調査、コンプライアンス対応、権限・認可の妥当性検証に活用します。

基本

JSONスキーマ例
{
  "ts": "2025-08-01T09:15:24+09:00",
  "level": "INFO|WARN|ERROR",
  "action": "USER_LOGIN|ROLE_ASSIGN|EXPORT_DATA|...",
  "actor":  {"id":"u_001","name":"taro","ip":"203.0.113.10"},
  "target": {"type":"user|role|dataset","id":"..."},
  "resource": "/path-or-endpoint",
  "result": "SUCCESS|DENY|FAIL",
  "meta":   {"key":"value", "...": "..."}
}

基礎

観点推奨補足
タイムスタンプISO8601 + タイムゾーン例: 2025-08-01T09:15:24+09:00
一意IDイベントID(UUID)重複/再送の識別に使用
保持期間本番: 1〜7年規制/契約に準拠(PIIは短期分離)
格納先WORM/S3 Object Lock/Append-only改竄防止
マスキングPII/秘匿値はハッシュ化例: IPの/24, メールのローカル部

導入

  1. 記録ポリシー策定(対象アクションとレベル)
  2. アプリ/ミドル/インフラのログ出力を標準化(JSON)
  3. 収集経路(Agent / HTTP / Queue)を決める
  4. 保存(低コスト)と検索(高性能)を分離
  5. 可視化ダッシュボード・アラート連携

開発現場

最新情報

このページはローカルの /data/audit-logs.json を読み込みます。運用では SIEM / Data Lake と連携してください。

応用

発展

PHPでJSONログへ追記(安全寄りサンプル)
// 例: append_audit_log($event)
function append_audit_log(array $event, string $file): bool {
  $event['ts'] = $event['ts'] ?? date('c');
  $event['id'] = $event['id'] ?? bin2hex(random_bytes(16)); // UUID代替
  $json = is_readable($file) ? json_decode(file_get_contents($file), true) : [];
  $json[] = $event;
  // 追記ではなく、まとめて書き戻し(ローテート推奨)
  return (bool)file_put_contents($file, json_encode($json, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT));
}
検索クエリの例
  • q=export AND result=DENY → 機微データの持ち出し失敗を抽出
  • actor=u_admin → 管理者の操作履歴
  • action=ROLE_ASSIGN&date_from=2025-08-01

おすすめツール