나의 잡다한 노트 및 메모
pg_hba 란? 본문
pg_hba는 PostgreSQL 데이터베이스 서버의 접근 제어와 인증을 관리하는 핵심 구성 파일인 pg_hba.conf (PostgreSQL Host-Based Authentication configuration file) 를 의미해. 이 파일은 PostgreSQL 서버에 접속하려는 클라이언트의 IP 주소, 사용자, 데이터베이스 이름 등 다양한 조건에 따라 접근을 허용하거나 거부하는 역할을 합니다.
주요 기능 및 역할
- 접속 제어:
- 호스트 기반 인증:
pg_hba.conf 파일은 클라이언트가 서버에 접근할 때 어떤 인증 방법을 사용해야 하는지 결정합니다. - 접근 허용/거부:
각 접속 시도에 대해 클라이언트의 IP 주소, 사용자, 데이터베이스 등의 조건을 확인하여 연결을 허용하거나 차단할 수 있습니다.
- 호스트 기반 인증:
- 인증 방법 설정:
- 다양한 인증 방식 지원:
PostgreSQL은 MD5, SCRAM, Trust, Peer, Cert 등 여러 인증 방법을 제공하며, pg_hba.conf에서 각 항목별로 사용할 인증 방법을 지정할 수 있습니다. - 보안 강화:
적절한 인증 방법과 접근 제어 설정을 통해, 외부의 비인가 접근이나 공격을 방지할 수 있습니다.
- 다양한 인증 방식 지원:
- 접속 경로 관리:
- 로컬 vs 원격 접속:
파일 내에는 로컬 접속(소켓을 통한 접속)과 네트워크를 통한 원격 접속에 대해 각각 다른 규칙을 설정할 수 있습니다. - 세분화된 제어:
예를 들어, 특정 IP 범위에 대해서만 인증을 요구하거나, 내부 네트워크의 클라이언트는 신뢰할 수 있도록 설정하는 등의 세밀한 접근 제어가 가능합니다.
- 로컬 vs 원격 접속:
pg_hba.conf 파일 구조
파일은 보통 여러 줄의 규칙(rule)으로 구성되어 있으며, 각 규칙은 다음과 같은 기본 필드들로 구성됩니다:
- TYPE: 접속 타입 (예: local, host, hostssl, hostnossl 등)
- DATABASE: 접근하려는 데이터베이스 이름 또는 all (모든 데이터베이스)
- USER: 데이터베이스 사용자 이름 또는 all (모든 사용자)
- ADDRESS: 접속을 시도하는 클라이언트의 IP 주소/네트워크 (local의 경우는 필요 없음)
- METHOD: 인증 방법 (예: trust, password, md5, scram-sha-256, peer, cert 등)
- OPTIONS: 추가 옵션 (필요에 따라)
# 로컬 접속에 대해 신뢰(Trust) 인증을 사용
local all all trust
# 원격 접속에 대해 MD5 인증을 사용 (192.168.1.0/24 네트워크)
host all all 192.168.1.0/24 md5
'DB > PostgreSQL' 카테고리의 다른 글
Patroni의 명령어 (0) | 2025.03.25 |
---|---|
PostgreSQL 베어메탈 환경에서 설치 (0) | 2025.03.02 |
Pigsty 란? (0) | 2025.02.15 |
pg_rewind 란? (0) | 2025.02.13 |
Patroni 설정 파일 (0) | 2025.02.13 |