본문으로 건너뛰기

Audit 비즈니스 규칙

유효성 검증 규칙

감사 로그 유효성

  1. 필수 필드 검증

    • 타임스탬프(timestamp)는 반드시 존재해야 함
    • 이벤트 유형(eventType)은 반드시 존재해야 함
    • 이벤트 소스(source)는 반드시 존재해야 함
    • 액터(actor) 또는 타겟(target) 중 최소 하나는 존재해야 함
  2. 형식 검증

    • 타임스탬프는 13자리 Unix 타임스탬프(밀리초) 형식을 사용 (예: 1679471431000)
    • 이벤트 유형은 정의된 이벤트 유형 목록에 포함되어야 함
    • IP 주소는 유효한 IPv4 또는 IPv6 형식이어야 함
  3. 크기 제한

    • 세부 정보(details) 필드는 최대 16KB까지 허용
    • 메타데이터(metadata) 필드는 최대 4KB까지 허용

감사 정책 유효성

  1. 필수 필드 검증

    • 정책 이름(name)은 반드시 존재해야 함
    • 이벤트 유형 목록(eventTypes)은 비어있지 않아야 함
    • 보존 기간(retentionPeriod)은 반드시 존재해야 함
  2. 고유성 검증

    • 정책 이름(name)은 시스템 내에서 고유해야 함
  3. 값 범위 검증

    • 보존 기간은 최소 1일부터 최대 10년까지 설정 가능
    • 활성화 상태(enabled)는 boolean 값이어야 함

클라이언트 세션 ID 유효성

  1. 형식 검증

    • 세션 ID는 UUID v4 형식을 준수해야 함
    • 세션 ID는 최소 32자(하이픈 제외)여야 함
  2. 헤더 검증

    • 세션 ID는 'X-Session-ID' 헤더로 전송되어야 함
    • 헤더 값은 공백이나 특수문자를 포함하지 않아야 함

상태 전이 규칙

감사 로그 상태

  • 감사 로그는 생성 후 수정 불가 (불변성)
  • 감사 로그의 상태는 SUCCESS 또는 FAILURE만 가능
  • 초기 상태는 반드시 지정되어야 함

감사 정책 상태

  1. 정책 활성화/비활성화

    • 정책은 활성화 또는 비활성화 상태일 수 있음
    • 정책 상태 변경은 감사 로그에 기록되어야 함
    • 비활성화된 정책은 이벤트 필터링에 적용되지 않음
  2. 정책 버전 관리

    • 정책 변경 시 버전이 자동으로 증가
    • 이전 버전의 정책은 기록은 유지되나 적용되지 않음

클라이언트 세션 상태

  1. 세션 생성 및 종료

    • 새 세션은 애플리케이션 시작 또는 사용자 로그인 시 생성됨
    • 세션은 사용자 로그아웃, 애플리케이션 종료 또는 만료 시 종료됨
    • 세션 시작 및 종료는 반드시 감사 로그에 기록되어야 함
  2. 세션 만료

    • 세션은 마지막 활동 후 4시간 이상 활동이 없을 경우 만료되어야 함
    • 만료된 세션의 경우 새로운 세션 ID가 생성되어야 함

계산 규칙

보존 기간 계산

  1. 자동 삭제 시점 계산

    • 자동 삭제 시점 = 로그 생성 시간 + 보존 기간
    • 보존 기간이 변경된 경우, 새로운 보존 기간이 기존 로그에도 적용됨
  2. 보존 우선순위

    • 여러 정책이 적용될 경우, 가장 긴 보존 기간이 우선 적용됨
    • 규정 준수 요구사항이 있는 로그는 일반 로그보다 보존 우선순위가 높음

스토리지 사용량 계산

  1. 예상 스토리지 사용량

    • 일일 로그 볼륨 × 평균 로그 크기 × 보존 일수
    • 색인 오버헤드 20% 추가 계산
  2. 샤딩 계산

    • 로그 볼륨에 따라 샤드 수 자동 계산
    • 기본값: 1GB당 1개 샤드, 최소 2개 샤드

세션 활동 계산

  1. 세션 활동 시간

    • 세션 활동 시간 = 마지막 활동 시간 - 세션 시작 시간
    • 세션 활동 볼륨 = 해당 세션 ID로 발생한 이벤트 수
  2. 세션 비활성 계산

    • 세션 비활성 시간 = 현재 시간 - 마지막 활동 시간
    • 비활성 시간이 4시간 초과 시 만료 처리

접근 제어 규칙

감사 로그 접근 제어

  1. 조회 권한

    • AUDIT_VIEWER 역할: 감사 로그 읽기 권한
    • AUDIT_ADMIN 역할: 감사 로그 읽기 및 정책 관리 권한
    • SYSTEM_ADMIN 역할: 모든 접근 권한
  2. 필터링 규칙

    • 사용자는 자신이 액세스 권한이 있는 리소스의 감사 로그만 조회 가능
    • 민감한 보안 이벤트는 보안 관리자만 조회 가능

감사 정책 접근 제어

  1. 정책 관리 권한

    • 정책 생성/수정/삭제는 AUDIT_ADMIN 또는 SYSTEM_ADMIN 역할만 가능
    • 정책 조회는 AUDIT_VIEWER 이상의 역할에서 가능
  2. 정책 범위 제한

    • 도메인별 관리자는 해당 도메인의 감사 정책만 관리 가능
    • 글로벌 감사 정책은 SYSTEM_ADMIN만 관리 가능

세션 데이터 접근 제어

  1. 세션 로그 조회 권한

    • 사용자는 자신의 세션 관련 감사 로그만 조회 가능
    • 관리자(AUDIT_ADMIN)는 모든 사용자의 세션 로그 조회 가능
    • 세션 로그 조회 시 사용자 식별 정보는 마스킹 처리되어야 함
  2. 세션 데이터 활용 제한

    • 세션 ID는 감사 및 활동 추적 목적으로만 사용해야 함
    • 세션 ID는 인증이나 권한 부여에 사용되어서는 안 됨
    • JWT 토큰만이 사용자 인증 및 권한 부여에 사용되어야 함

변경 이력

버전날짜작성자변경 내용
0.1.02025-03-19bok@weltcorp.com최초 작성