인성장

[PostgreSQL] pg_hba.conf 본문

PostgreSQL/Admin

[PostgreSQL] pg_hba.conf

인성장 2023. 11. 30. 14:34
pg_hba.conf 

 

pg_hba.conf 는 data 디렉토리에 속해있는 파일로 외부에서 PostgreSQL DB로 접속하는 클라이언트에 대한 접근제어 및 접속인증 등을 설정하는 파일입니다. pg_hba.conf 파일의 형식은 다음과 같습니다.

 

# TYPE                      DATABASE                      USER                      ADDRESS                      METHOD

 

TYPE

DB를 접속할 사용자들의 접속 유형을 설정하는 컬럼입니다.

 

Option

local : Host OS에 직접 접속하여 DB를 사용하는 유형입니다.

host : TCP/IP 접속, 즉 외부 IP로 해당 DB서버에 접근하여 DB를 사용하는 유형입니다.


 

DATABASE

PostgreSQL 내부에서 구성하는 데이터베이스의 접근 권한을 설정하는 컬럼입니다.

 

Option

all : 제한없이 모든 데이터베이스 영역을 사용 할 수 있습니다.

replication : 이중화 구성시 복제를 위한 허용을 지정하여 사용합니다.

직접 지정 : 쉼표로 구분하여 데이터베이스 이름을 여러 개 작성할 수 있습니다.


 

USER

외부IPOS에서 접속 시, 사용 가능한 DB 내의 생성된 유저 사용을 설정하는 컬럼입니다.

 

Option

all : 모든 사용자와 일치하도록 지정합니다.

직접 지정 : 쉼표로 구분하여 사용자 이름을 여러 개 작성할 수 있습니다.


 

ADDRESS

내부나 외부에서 접속 시 접속을 허용할 IP나, IP 대역을 조절하는 컬럼입니다.

 

localOS에서 직접 사용하기 때문에 IP대역 조절이 필요없어서 공란으로 둡니다.

HostIP/socket으로 접속 가능한 영역을 설정합니다. IP를 명시하거나, 모든 IP,socket허용하고 싶다면 이 부분을 0.0.0.0/0로 설정하면 됩니다.


 

METHOD

사용자가 접속 시 인증할 인증방법을 설정하는 컬럼입니다.

 

Option

trust : 무조건 연결을 허용합니다. PW 입력 등 없이 바로 접속을 가능하게 합니다.

reject : 무조건 연결을 거부합니다. 실무적으로 서비스 운영시 문제를 계속 일으키는 외부 사용자나 서버가 있을 시, 이의 IP를 막아두어 문제를 일으키지 않게 하는 방법입니다.

password : 암호화되지 않은 패스워드를 입력해야 하는 방법입니다. 암호화되지 않았기 때문에 PW그대로 텍스트로 노출되기에 보안 취약 위험이 있습니다.

ident : 클라이언트의 ident 서버에 접촉함으로써 클라이언트의 운영 체제 사용자 이름을 획득하고, 요청된 데이터베이스 사용자 이름과 일치하는지 확인합니다. ident 인증은 TCP/IP연결에서만 사용할 수 있습니다. 로걸 연결에 대해 지정하는 경우 peer 인증이 대신 사용됩니다.

md5 : 클라이언트가 인증을 위해 암호화된 double-MD5-hashed 패스워드를 제공하는 방법입니다.

scram-sha-256 : SCRAM-SHA-256 인증을 수행합니다. 현재 제공되는 인증방법 중 가장 안전합니다.

 

 

설정 예시 (외부 원격 접속은 전부 허용하되,  접근 시 scram-sha-256 방식으로 비밀번호 입력받게끔 인증설정)

설정 예시