Audit 비즈니스 규칙
유효성 검증 규칙
감사 로그 유효성
-
필수 필드 검증
- 타임스탬프(timestamp)는 반드시 존재해야 함
- 이벤트 유형(eventType)은 반드시 존재해야 함
- 이벤트 소스(source)는 반드시 존재해야 함
- 액터(actor) 또는 타겟(target) 중 최소 하나는 존재해야 함
-
형식 검증
- 타임스탬프는 13자리 Unix 타임스탬프(밀리초) 형식을 사용 (예: 1679471431000)
- 이벤트 유형은 정의된 이벤트 유형 목록에 포함되어야 함
- IP 주소는 유효한 IPv4 또는 IPv6 형식이어야 함
-
크기 제한
- 세부 정보(details) 필드는 최대 16KB까지 허용
- 메타데이터(metadata) 필드는 최대 4KB까지 허용
감사 정책 유효성
-
필수 필드 검증
- 정책 이름(name)은 반드시 존재해야 함
- 이벤트 유형 목록(eventTypes)은 비어있지 않아야 함
- 보존 기간(retentionPeriod)은 반드시 존재해야 함
-
고유성 검증
- 정책 이름(name)은 시스템 내에서 고유해야 함
-
값 범위 검증
- 보존 기간은 최소 1일부터 최대 10년까지 설정 가능
- 활성화 상태(enabled)는 boolean 값이어야 함
클라이언트 세션 ID 유효성
-
형식 검증
- 세션 ID는 UUID v4 형식을 준수해야 함
- 세션 ID는 최소 32자(하이픈 제외)여야 함
-
헤더 검증
- 세션 ID는 'X-Session-ID' 헤더로 전송되어야 함
- 헤더 값은 공백이나 특수문자를 포함하지 않아야 함
상태 전이 규칙
감사 로그 상태
- 감사 로그는 생성 후 수정 불가 (불변성)
- 감사 로그의 상태는 SUCCESS 또는 FAILURE만 가능
- 초기 상태는 반드시 지정되어야 함
감사 정책 상태
-
정책 활성화/비활성화
- 정책은 활성화 또는 비활성화 상태일 수 있음
- 정책 상태 변경은 감사 로그에 기록되어야 함
- 비활성화된 정책은 이벤트 필터링에 적용되지 않음
-
정책 버전 관리
- 정책 변경 시 버전이 자동으로 증가
- 이전 버전의 정책은 기록은 유지되나 적용되지 않음
클라이언트 세션 상태
-
세션 생성 및 종료
- 새 세션은 애플리케이션 시작 또는 사용자 로그인 시 생성됨
- 세션은 사용자 로그아웃, 애플리케이션 종료 또는 만료 시 종료됨
- 세션 시작 및 종료는 반드시 감사 로그에 기록되어야 함
-
세션 만료
- 세션은 마지막 활동 후 4시간 이상 활동이 없을 경우 만료되어야 함
- 만료된 세션의 경우 새로운 세션 ID가 생성되어야 함
계산 규칙
보존 기간 계산
-
자동 삭제 시점 계산
- 자동 삭제 시점 = 로그 생성 시간 + 보존 기간
- 보존 기간이 변경된 경우, 새로운 보존 기간이 기존 로그에도 적용됨
-
보존 우선순위
- 여러 정책이 적용될 경우, 가장 긴 보존 기간이 우선 적용됨
- 규정 준수 요구사항이 있는 로그는 일반 로그보다 보존 우선순위가 높음
스토리지 사용량 계산
-
예상 스토리지 사용량
- 일일 로그 볼륨 × 평균 로그 크기 × 보존 일수
- 색인 오버헤드 20% 추가 계산
-
샤딩 계산
- 로그 볼륨에 따라 샤드 수 자동 계산
- 기본값: 1GB당 1개 샤드, 최소 2개 샤드
세션 활동 계산
-
세션 활동 시간
- 세션 활동 시간 = 마지막 활동 시간 - 세션 시작 시간
- 세션 활동 볼륨 = 해당 세션 ID로 발생한 이벤트 수
-
세션 비활성 계산
- 세션 비활성 시간 = 현재 시간 - 마지막 활동 시간
- 비활성 시간이 4시간 초과 시 만료 처리
접근 제어 규칙
감사 로그 접근 제어
-
조회 권한
- AUDIT_VIEWER 역할: 감사 로그 읽기 권한
- AUDIT_ADMIN 역할: 감사 로그 읽기 및 정책 관리 권한
- SYSTEM_ADMIN 역할: 모든 접근 권한
-
필터링 규칙
- 사용자는 자신이 액세스 권한이 있는 리소스의 감사 로그만 조회 가능
- 민감한 보안 이벤트는 보안 관리자만 조회 가능
감사 정책 접근 제어
-
정책 관리 권한
- 정책 생성/수정/삭제는 AUDIT_ADMIN 또는 SYSTEM_ADMIN 역할만 가능
- 정책 조회는 AUDIT_VIEWER 이상의 역할에서 가능
-
정책 범위 제한
- 도메인별 관리자는 해당 도메인의 감사 정책만 관리 가능
- 글로벌 감사 정책은 SYSTEM_ADMIN만 관리 가능
세션 데이터 접근 제어
-
세션 로그 조회 권한
- 사용자는 자신의 세션 관련 감사 로그만 조회 가능
- 관리자(AUDIT_ADMIN)는 모든 사용자의 세션 로그 조회 가능
- 세션 로그 조회 시 사용자 식별 정보는 마스킹 처리되어야 함
-
세션 데이터 활용 제한
- 세션 ID는 감사 및 활동 추적 목적으로만 사용해야 함
- 세션 ID는 인증이나 권한 부여에 사용되어서는 안 됨
- JWT 토큰만이 사용자 인증 및 권한 부여에 사용되어야 함
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-03-19 | bok@weltcorp.com | 최초 작성 |