pg_hba.conf는 PostgreSQL에서 클라이언트 접근 제어를 설정하는 핵심 파일
---
📌 pg_hba.conf 개요
위치: 일반적으로 PostgreSQL 데이터 디렉토리 하위에 위치
예: /etc/postgresql/<버전>/main/pg_hba.conf, 또는 /var/lib/pgsql/data/pg_hba.conf
HBA = Host Based Authentication
서버를 재시작 또는 SELECT pg_reload_conf(); 명령으로 재적용 필요
---
🧱 파일 구성 형식
# TYPE DATABASE USER ADDRESS METHOD
예시
# 로컬접속(local socket)
local all all trust
# IPv4 주소로 접근 허용 (모든 사용자)
host all all 192.168.1.0/24 md5
# 특정 사용자에게만 접근 허용
host mydb alice 10.0.0.5/32 scram-sha-256
---
📘 각 필드 설명
필드 설명
TYPE local, host, hostssl, hostnossl 등
DATABASE all 또는 특정 DB 이름
USER all 또는 특정 사용자 이름
ADDRESS IPv4, IPv6, 또는 CIDR 형식
METHOD 인증 방식: trust, md5, scram-sha-256, peer, reject 등
---
🔐 주요 인증 방법
방식 설명
trust 인증 없이 허용 (개발용 또는 로컬 테스트용만!)
md5 비밀번호 해시 기반 인증
scram-sha-256 PostgreSQL 10+부터 지원하는 더 안전한 인증
peer 유닉스 OS 사용자 기반 인증 (local only)
reject 접근 거부
---
🔧 설정 예시
1. 모든 IP에서 모든 DB에 접근 허용 (비추)
host all all 0.0.0.0/0 md5
2. 사내망(192.168.0.0/16)에서만 접근 허용
host all all 192.168.0.0/16 scram-sha-256
3. 특정 DB, 특정 사용자만 허용
host prod_db admin_user 10.0.0.10/32 scram-sha-256
---
🔄 변경 사항 적용
설정 파일 수정 후 아래 명령 중 하나를 실행합니다:
# PostgreSQL 재시작
sudo systemctl restart postgresql
# 설정 재적용 (무중단)
psql -U postgres -c "SELECT pg_reload_conf();"
---
🧪 확인 팁
접속 실패 시 PostgreSQL 로그에서 상세 원인을 확인
pg_hba.conf는 첫 번째로 매칭되는 규칙이 적용됨 (위에 올수록 우선순위 높음)
---
✅ 보안 권장사항
1. 외부 접근 시 반드시 md5 또는 scram-sha-256 사용
2. IP 대역 제한 설정 (0.0.0.0/0 지양)
3. 불필요한 trust, peer 방식 사용 금지
4. 인증 실패 로그 모니터링
5. pg_ident.conf와 함께 OS 사용자
'① IT 스타트 (IT Competence) > Database, 데이터베이스' 카테고리의 다른 글
| Query Folding (0) | 2026.04.16 |
|---|