나의 잡다한 노트 및 메모

pg_hba 란? 본문

DB/PostgreSQL

pg_hba 란?

peanutwalnut 2025. 3. 25. 20:12

pg_hba는 PostgreSQL 데이터베이스 서버의 접근 제어와 인증을 관리하는 핵심 구성 파일인 pg_hba.conf (PostgreSQL Host-Based Authentication configuration file) 를 의미해. 이 파일은 PostgreSQL 서버에 접속하려는 클라이언트의 IP 주소, 사용자, 데이터베이스 이름 등 다양한 조건에 따라 접근을 허용하거나 거부하는 역할을 합니다.


주요 기능 및 역할

  1. 접속 제어:
    • 호스트 기반 인증:
      pg_hba.conf 파일은 클라이언트가 서버에 접근할 때 어떤 인증 방법을 사용해야 하는지 결정합니다.
    • 접근 허용/거부:
      각 접속 시도에 대해 클라이언트의 IP 주소, 사용자, 데이터베이스 등의 조건을 확인하여 연결을 허용하거나 차단할 수 있습니다.
  2. 인증 방법 설정:
    • 다양한 인증 방식 지원:
      PostgreSQL은 MD5, SCRAM, Trust, Peer, Cert 등 여러 인증 방법을 제공하며, pg_hba.conf에서 각 항목별로 사용할 인증 방법을 지정할 수 있습니다.
    • 보안 강화:
      적절한 인증 방법과 접근 제어 설정을 통해, 외부의 비인가 접근이나 공격을 방지할 수 있습니다.
  3. 접속 경로 관리:
    • 로컬 vs 원격 접속:
      파일 내에는 로컬 접속(소켓을 통한 접속)과 네트워크를 통한 원격 접속에 대해 각각 다른 규칙을 설정할 수 있습니다.
    • 세분화된 제어:
      예를 들어, 특정 IP 범위에 대해서만 인증을 요구하거나, 내부 네트워크의 클라이언트는 신뢰할 수 있도록 설정하는 등의 세밀한 접근 제어가 가능합니다.

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