Infra/Postgresql

[PostgreSQL] 패스워드 정책 설정 by. credcheck

연양 2024. 1. 29. 13:00

1. 패스워드 정책 설정  

지난 시간에 이어서, Credcheck 환경 셋팅이 완료되었으면 이제 패스워드 복잡도 정책을 설정해 보겠다.

주로 데이터베이스 계정 패스워드 관련으로 확인하는 부분은 복잡성, 재사용 방지, 비밀번호 변경 주기 등이 있다.

 

check  설정  설명 
password_min_length 패스워드 최소 길이 
password_min_special  1 패스워드 최소 포함 특수문자 
password_min_digit  1 패스워드 최소 포함 숫자 
password_contain_username  on 패스워드에 사용자 이름 미 포함 
password_valid_max  90일 패스워드 만료일
password_reuse_history  3개(이전 3개의 비밀번호는 사용 불가)  패스워드 재사용 불가능한 비밀번호 개수 
password_reuse_interval  365일(1년 후 사용가능)  패스워드 재사용 가능한 일
max_auth_failure  5회  패스워드 실패 횟수 제한 

 

이외의 다른 설정 리스트는 credcheck 깃헙에서 확인할 수 있으며, 설정 시 ALTER SYSTEM SET 명령어를 사용해야 한다. 

그냥 SET 명령어만 사용 시 데이터베이스 종료 후 다시 접속 시 설정이 해지 된다. 

 

설정 후에는 재시작 없이 변경사항이 저장될 수 있도록 SELECT pg_reload_conf(); 명령어를 함께 실행하여,

설정 사항을 저장한다. 

 

1-1. 패스워드 복잡도 설정

ALTER SYSTEM SET credcheck.password_min_length = 8 //비밀번호 최소길이 설정
ALTER SYSTEM SET credcheck.password_min_special = 1 //비밀번호 특수문자 설정
ALTER SYSTEM SET credcheck.password_min_digit = 1 //비밀번호 숫자 포함 설정
ALTER SYSTEM SET credcheck.password_contain_username = on //비밀번호에 사용자명 미포함
ALTER SYSTEM SET credcheck.password_min_repeat = 2 //연속되는 2자리 반복 불가 ex) aa
SELECT pg_reload_conf(); //재시작 없이 변경사항 저장

 

[패스워드 복잡도 설정]

 

[패스워드 변경 주기 설정]

 

1-2.  패스워드 재사용 방지 설정

ALTER SYSTEM SET credcheck.password_reuse_history = 3; //이전 3회에 대한 비밀번호 사용 불가
ALTER SYSTEM SET credcheck.password_reuse_interval = 365; //비밀번호 재사용 가능한 일
SELECT pg_reload_conf(); //재시작 없이 변경사항 저장

[패스워드 재사용 방지 설정]

 

1-3.  로그인 실패 횟수 설정 

ALTER SYSTEM SET credcheck.max_auth_failure = 5 //로그인 실패 횟수 5회 제한
SELECT pg_reload_conf(); //재시작 없이 변경사항 저장

 

[로그인 실패 횟수 제한]

 

 

1-4.  superuser  차단 금지 설정 및 로그인 실패 횟수 초과로 잠긴 계정  초기화 

superuser 계정이 차단 된 경우, 데이터베이스에 접근할 수 없으므로 협의하여 superuser 계정에 대해서 계정이 차단되지 않도록 설정해야한다.

서비스 계정 또는 사용자 계정이 잠겼을 시 failure_count 초기화 용도로 필요하며, failure_count 초기화는 아래 처럼 진행하면 된다. 

 

ALTER SYSTEM SET credcheck.reset_superuser = true; //superuser 계정 차단 금지
SELECT pg_reload_conf(); //재시작 없이 변경사항 저장

<!-- failure_count 횟수 초기화 설정 -->
select pg_banned_role_reset();

 

패스워드 실패 횟수 초기화

 

참고 : https://github.com/MigOpsRepos/credcheck

'Infra > Postgresql' 카테고리의 다른 글

[PostgreSQL] Credcheck 라이브러리 설치  (4) 2023.11.26