감사 로깅
감사 로깅 (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, 요청한 주체의 신원, 그리고 구성에 따라 요청/응답 세부 정보가 포함돼요.