PostgreSQL 계정 비밀번호 변경 및 보안 설정 가이드

PostgreSQL 계정 비밀번호 변경 및 보안 설정 가이드

PostgreSQL 계정 비밀번호 변경 및 보안 설정

PostgreSQL을 운영할 때 보안 강화를 위해 주기적인 비밀번호 변경과 계정 관리는 필수적입니다. 특히 사용하지 않는 계정을 안전하게 처리하거나, 비밀번호 만료 기한을 설정하는 것은 보안 정책을 유지하는 중요한 요소입니다. 이 글에서는 PostgreSQL 계정 비밀번호를 변경하는 방법과 보안 설정을 강화하는 팁을 소개합니다.


활성화된 계정 목록 확인

먼저, 현재 활성화된 계정을 확인해야 합니다. 아래 SQL을 실행하면 데이터베이스에 등록된 모든 계정을 조회할 수 있습니다.

SELECT rolname, rolsuper, rolcanlogin, rolvaliduntil FROM pg_roles;

여기서 rolsupertrue인 계정은 슈퍼유저이며, rolvaliduntilNULL이면 비밀번호 만료 기한이 설정되지 않은 상태입니다. 또한 rolcanloginfalse이면 해당 계정은 로그인할 수 없습니다.


계정 비밀번호 변경

비밀번호를 변경하려면 다음 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