Category: PostgreSQL

0

[PostgreSQL] 사용자별 보안 설정 가이드

🔒 PostgreSQL 사용자별 보안 설정 완벽 가이드PostgreSQL에서는 사용자(Role)별로 다양한 보안 설정을 적용하여 데이터베이스를 안전하게 보호할 수 있습니다.이 문서에서는 세션 타임아웃부터 접속 제한, 권한 관리까지 실무에서 꼭 필요한 보안 설정들을 정리합니다. 1️⃣ 세션 타임아웃 설정✅ idle_session_timeout (PostgreSQL 14+)유휴 세션을 자동으로 종료하여 불필요한 연결을 정리합니다. -- 세션 레벨에서 설정 (30분)SET idle_session_timeout = '30min';-- 전역 설정 (postgresql.conf)idle_session_timeout = '30min'-- 특정 사용자에 설정ALTER ROLE webapp_user SET idle_session_timeout = '30min';-- 특정 데이터베이스에 설정ALTER DATABASE mydb SET idle_session_timeout = '1h'; ✅ statement_timeout단일 쿼리의 최대 실행 시간을 제한하여 과도한 리소스 사용을 방지합니다. -- 세션 레벨 (10초)SET statement_timeout = '10s';-- 웹 애플리케이션 사용자: 짧은 타임아웃ALTER ROLE webapp_user SET statement_timeout = '30s';-- 배치 작업 사용자: 긴 타임아웃ALTER ROLE batch_user SET statement_timeout = '10min';-- 관리자: 제한 없음ALTER ROLE admin_user SET statement_timeout = 0;

0

[PostgreSQL] 인증 및 보안 강화하기

🔐 PostgreSQL 인증 강화 가이드 — 비밀번호만으로는 부족하다PostgreSQL은 기본적으로 username + password 조합으로 인증하지만,그 외에도 여러 보안 강화 방법을 제공하여 MFA(다단계 인증) 수준의 보호를 구축할 수 있습니다.이 글에서는 PostgreSQL의 인증 강화 방안을 단계별로 정리합니다. 1️⃣ 비밀번호 보안 강화 (기본 강화)기본적인 로그인 방식을 유지하면서도 훨씬 안전하게 만드는 방법입니다. ✅ SCRAM-SHA-256 전환md5보다 훨씬 안전한 해시 알고리즘입니다. # postgresql.confpassword_encryption = scram-sha-256 # pg_hba.confhost all all 10.0.0.0/8 scram-sha-256 ✅ 채널 바인딩 (MITM 방어)