감사 로그: 모든 주요 시스템의 조용한 수호자
Source: Dev.to
기능을 만들고, 테스트하고, 정상 동작한다.
3개월 뒤: 데이터가 사라지고, 거래가 실패하고, 사용자는 시스템이 말하는 행동을 하지 않았다고 부인한다.
어디를 확인해야 할까?
감사 로그다. 그리고 감사 로그가 없다면, 당신은 눈이 먼 것이다.감사 로그란 무엇인가?
시간 순서대로, 변조가 드러나는 모든 중요한 행동의 기록: 누가 무엇을 언제, 어떤 대상에 대해 했는지, 그리고 무엇이 바뀌었는지.
주니어 개발자들은 감사 로그를 규정 준수 체크박스로만 생각한다.
그 생각은 역행한다.
감사 로그는 규제 기관을 위한 것이 아니다. 신뢰를 위한 인프라다. 시스템이 마주하는 가장 어려운 질문, “실제로 무슨 일이 일어났는가?”에 답한다.모든 개발자가 알아야 할 8가지 절대 조건:
- 감사 로그는 일반 로그가 아니다. 절대 혼합하지 말라.
- 각 항목은 반드시 다음을 답해야 한다: 누가? 무엇을? 무엇에? 언제? 어디서? 결과는?
- 타임스탬프는 UTC로. 언제나. 예외 없음.
- 추가 전용. UPDATE 금지. DELETE 금지. 절대.
- 변조 방지를 위해 암호학적 해시 체인을 사용한다.
- 비밀번호, 토큰, 비밀 정보는 절대 기록하지 않는다.
- 첫 기록을 쓰기 전에 보존 정책을 정의하라.
- 감사 로그를 증거로 취급하라 — 언젠가 반드시 증거가 될 것이기 때문이다.
감사 로그는 설명할 수 없는 재난과 당신 사이에 놓인 유일한 방어선이 될 때까지는 불필요해 보인다.
처음부터 진지하게 구축하라.
사후에 급히 만들면 후회하게 될 것이다.