감사 로깅

감사 로깅 (Audit Logging)

Pinot의 REST API 접근을 추적하는 감사 로깅(audit logging)을 구성하는 방법을 안내해요. 감사 로그는 누가 언제 무엇을 접근했는지를 ndjson 형식으로 기록해요.

출처: 문서

본문

개요 (Overview)

Pinot은 컨트롤러와 브로커의 REST API 접근에 대한 감사 로그를 생성할 수 있어요. 감사 로깅은 보안 감사(security audit)와 규정 준수(compliance) 요구 사항을 지원하기 위한 것으로, 다음 기능을 제공해요:

  • URL 필터링 — 감사할 URL 패턴을 구성할 수 있어요.
  • 신원 해석 (Identity resolution) — 요청을 수행한 주체(principal)의 신원을 해석해 기록해요.
  • 요청/응답 포착 — 요청과 응답을 선택적으로 기록할 수 있어요.
  • ndjson 로그 출력 — 로그를 NDJSON(Newline-Delimited JSON) 형식으로 출력해요.

컨트롤러 감사 로깅 (Controller audit logging)

컨트롤러의 감사 로깅은 관리(admin) API 접근을 추적해요. 컨트롤러 구성 파일에 다음을 설정하세요:

controller.audit.log.enabled=true
controller.audit.log.output.dir=/path/to/audit/logs

브로커 감사 로깅 (Broker audit logging)

브로커의 감사 로깅은 쿼리 요청 접근을 추적해요. 브로커 구성 파일에 다음을 설정하세요:

pinot.broker.audit.log.enabled=true
pinot.broker.audit.log.output.dir=/path/to/audit/logs

구성 속성 (Configuration properties)

속성 설명
enabled 감사 로깅 활성화 여부
output.dir 감사 로그가 기록될 디렉토리
url.filter 감사할 URL 패턴 필터
identity.resolution 요청 신원 해석 활성화 여부
request.capture 요청 본문 포착 여부
response.capture 응답 본문 포착 여부

ndjson 로그 형식 (ndjson log format)

감사 로그는 각 줄이 하나의 감사 이벤트를 나타내는 NDJSON 형식으로 기록돼요. 각 이벤트에는 타임스탬프, HTTP 메서드, URL, 요청한 주체의 신원, 그리고 구성에 따라 요청/응답 세부 정보가 포함돼요.

더 알아보기 (Learn more)