28장. 감사 이벤트를 증거로 설계한다
감사 로그는 일반 application log의 복사본이 아니다. who, what, which resource, tenant, result, reason category, policy version, when, request/decision ID를 구조화한다. 비밀번호, token 원문, CSRF token, 계약 본문, 주민번호는 넣지 않는다.
{
"event": "contract.authorization",
"subjectRef": "usr_7f2...",
"tenant": "ACME",
"resource": "C-1042",
"action": "approve",
"result": "DENY",
"reason": "STEP_UP_REQUIRED",
"policyVersion": "2026-08-15.1",
"decisionId": "dec_01J..."
}
감사 저장소는 변경 방지, 보존 기간, 접근 권한, 시간 동기화, export 절차를 가진다. 관리자도 자기 활동을 지울 수 없어야 한다. 개인정보 목적과 법적 의무에 맞춰 최소 보존하고, “무조건 오래” 저장하지 않는다.
알림은 실패 한 건보다 패턴을 본다. 다른 tenant에 대한 반복 403, 새로운 국가에서의 관리자 step-up, 짧은 시간 여러 refresh family reuse를 탐지한다. 탐지 규칙도 false positive와 담당자 응답 시간을 검증한다.