PostgreSQL · 2026-02-16

PostgreSQL pgaudit로 감사 로그 설정

pgaudit 확장을 이용한 PostgreSQL 감사 로그 설정 방법과 권장 파라미터, 설치 및 확인 절차를 초보자도 이해하기 쉬운 설명으로 정리한 설정

작성일 : 2026-02-16 ㆍ 작성자 : 관리자
post
목차

개요

데이터베이스 감사는 보안과 컴플라이언스에서 필수 요소다. PostgreSQL에서는 pgaudit 확장을 통해 SQL 수준의 활동을 상세히 기록할 수 있다. 이 글에서는 pgaudit 설정 과정, 주요 파라미터, 로그 확인 방법을 단계별로 정리한다. 초보자도 따라하기 쉬운 설명으로 구성되었다.

pgaudit가 무엇인지

pgaudit는 PostgreSQL에서 수행된 쿼리와 관련 메타정보를 확장으로 기록한다. 어떤 사용자가 어떤 객체에 대해 어떤 작업을 했는지 추적하기 쉽다. 기존의 일반 로그보다 더 구조화된 감사 정보를 제공한다.

사전 준비

다음 요건을 확인한다.

  • PostgreSQL 버전이 pgaudit를 지원하는지 확인 (보통 9.5 이상 권장)
  • 서버에 확장 설치 권한(superuser) 보유
  • 로그 수집과 보관 정책 결정 (디스크 용량 포함)

설치 및 설정 순서

1. shared_preload_libraries 설정

pgaudit는 서버 시작 시 로드되어야 한다. postgresql.conf에서 shared_preload_libraries에 pgaudit를 추가한다.

shared_preload_libraries = 'pgaudit'
# 또는 기존 값이 있을 경우: 'auto_explain,pgaudit'

2. PostgreSQL 재시작

구성을 적용하려면 서버 재시작이 필요하다. 시스템 서비스 방식에 따라 재시작 명령 사용.

3. 확장 설치

데이터베이스에 접속해 pgaudit 확장을 생성한다.

CREATE EXTENSION IF NOT EXISTS pgaudit;

4. pgaudit 관련 파라미터 설정

주요 파라미터 예시는 다음과 같다. pgaudit.log는 기록할 활동 범위를 결정한다.

# postgresql.conf 예시
pgaudit.log = 'read, write, function'
pgaudit.log_catalog = off
pgaudit.log_level = 'LOG'
# 선택: 특정 역할만 감사하려면
pgaudit.role = 'audit_user'

권장 로그 및 로깅 관련 설정

감사를 효과적으로 운영하려면 PostgreSQL의 일반 로깅도 함께 조정한다.

  • logging_collector = on
  • log_destination = 'stderr' (또는 'csvlog' 사용 가능)
  • log_line_prefix에 시간, 사용자, 데이터베이스 정보 포함
log_line_prefix = '%m [%p] %u@%d '
log_statement = 'none'  # pgaudit로 쿼리 레벨을 제어

로그 확인 예시

pgaudit가 활성화되면 로그에 쿼리와 관련 정보가 기록된다. 예시 로그 항목은 다음과 같다.

LOG:  AUDIT: SESSION,1,1,READ,SELECT,public.users,SELECT * FROM users; -- user=dbuser

위 항목에서 타입(READ/WRITE), 대상 객체, 실행된 쿼리 및 세션 정보 등을 확인할 수 있다.

운영 시 권장 사항

  • 불필요한 범위의 로그는 제외하여 디스크 사용을 관리한다.
  • 감사 전용 역할을 지정하면 대상 범위 제어가 용이하다.
  • 로그는 중앙 수집 시스템(예: ELK, Splunk)으로 전송해 분석한다.
  • 정기적으로 로그를 검토하고 보존 기간을 정책화한다.

문제 해결 포인트

로그가 남지 않으면 다음을 확인한다.

  • shared_preload_libraries에 pgaudit가 포함되었는지
  • 확장 생성 여부(CREATE EXTENSION pgaudit;)
  • pgaudit.log 설정이 적절한지
  • logging_collector 및 log_destination 설정

마무리

pgaudit는 PostgreSQL에서 세밀한 감사 로그를 제공한다. 설정은 비교적 단순하지만, 로그 범위와 보관 전략을 미리 설계하는 것이 중요하다. 여기서 제시한 예시는 기본적인 배치에 해당하며, 실제 운영 환경에서는 보안 정책과 성능 영향을 고려해 세밀히 조정한다.

pgaudit 설정 postgres postgres 감사 로그 활성화 audit logging postgres pgaudit PostgreSQL 감사 pgaudit 설치 pgaudit 설정 데이터베이스 감사 Postgres 보안