PostgreSQL 계정 비밀번호 변경 및 보안 설정
PostgreSQL을 운영할 때 보안 강화를 위해 주기적인 비밀번호 변경과 계정 관리는 필수적입니다. 특히 사용하지 않는 계정을 안전하게 처리하거나, 비밀번호 만료 기한을 설정하는 것은 보안 정책을 유지하는 중요한 요소입니다. 이 글에서는 PostgreSQL 계정 비밀번호를 변경하는 방법과 보안 설정을 강화하는 팁을 소개합니다.
활성화된 계정 목록 확인
먼저, 현재 활성화된 계정을 확인해야 합니다. 아래 SQL을 실행하면 데이터베이스에 등록된 모든 계정을 조회할 수 있습니다.
SELECT rolname, rolsuper, rolcanlogin, rolvaliduntil FROM pg_roles;
여기서 rolsuper
가 true
인 계정은 슈퍼유저이며, rolvaliduntil
이 NULL
이면 비밀번호 만료 기한이 설정되지 않은 상태입니다. 또한 rolcanlogin
이 false
이면 해당 계정은 로그인할 수 없습니다.
계정 비밀번호 변경
비밀번호를 변경하려면 다음 SQL을 실행합니다.
ALTER ROLE your_user PASSWORD '새로운_비밀번호';
만약 postgres 슈퍼유저의 비밀번호를 변경하려면:
ALTER ROLE postgres PASSWORD '새로운_비밀번호';
비밀번호 변경 후 적용을 위해 기존 세션을 종료하는 것이 좋습니다.
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.usename = 'your_user';
비밀번호 만료 기한 설정
보안 강화를 위해 비밀번호를 90일마다 변경하도록 설정할 수 있습니다.
ALTER ROLE your_user PASSWORD '새로운_비밀번호' VALID UNTIL NOW() + INTERVAL '90 days';
이렇게 설정하면 90일 후 비밀번호가 만료되어 변경해야 합니다. 기한이 지나면 로그인 시 오류가 발생할 수 있습니다.
사용하지 않는 계정 비활성화
사용하지 않는 계정은 보안을 위해 비활성화하는 것이 좋습니다.
비밀번호 제거
ALTER ROLE unused_user PASSWORD NULL;
로그인 차단
ALTER ROLE unused_user NOLOGIN;
계정 비활성화 확인
SELECT rolname, rolcanlogin FROM pg_roles WHERE rolname = 'unused_user';
강화된 보안 설정 적용
PostgreSQL에서 추가적인 보안 강화를 위해 다음과 같은 설정을 고려할 수 있습니다.
- 비밀번호 해싱 강화: PostgreSQL 10 이상에서는 SCRAM-SHA-256 해싱을 사용하는 것이 권장됩니다.
ALTER SYSTEM SET password_encryption = 'scram-sha-256';
pg_hba.conf
파일을 수정하여 인증 방식을 명확히 지정합니다.listen_addresses
를 'localhost'
로 설정합니다.비밀번호 변경 적용 및 테스트
비밀번호 변경 후 새로운 비밀번호로 정상적으로 로그인이 되는지 확인하려면:
psql -U your_user -W
입력한 비밀번호로 인증이 되면 변경이 정상적으로 적용된 것입니다.
Comments
Post a Comment