이 페이지에서는 AlloyDB Omni의 비밀번호 정책을 설정하고 관리하는 방법을 설명합니다.
비밀번호 정책 정보
애플리케이션의 데이터베이스 사용자가 기본 제공되는 비밀번호 기반 메서드를 사용하여 AlloyDB Omni으로 인증하는 경우 강력한 비밀번호를 적용하여 인증을 더 안전하게 만들 수 있습니다. AlloyDB Omni 비밀번호 정책을 설정하여 비밀번호 시행을 정의하고 사용 설정할 수 있습니다.
비밀번호 정책의 제한사항
AlloyDB Omni 비밀번호 정책에는 다음과 같은 제한사항이 있습니다.
비밀번호 정책은 정책을 설정한 후에 생성된 비밀번호에만 적용됩니다. 기존 사용자 비밀번호는 비밀번호 정책 변경의 영향을 받지 않습니다.
비밀번호 정책은 일반 텍스트로만 입력된 비밀번호에 적용됩니다. 암호화된 문자열로 입력된 비밀번호에는 비밀번호 정책이 적용되지 않습니다.
AlloyDB Omni 비밀번호 정책 설정
postgresql.conf
구성 파일에서 Grand Unified Configuration (GUC) 비밀번호 매개변수를 업데이트하여 비밀번호 정책을 설정합니다. GUC 매개변수를 설정하는 방법을 알아보려면 AlloyDB Omni 데이터베이스 플래그 구성을 참고하세요.
AlloyDB Omni의 비밀번호 정책에는 다음 옵션이 포함될 수 있습니다.
사용자 이름 사용 금지: 비밀번호에서 사용자 이름을 사용하지 못하게 합니다.
비밀번호 복잡성: 비밀번호에 허용된 수의 소문자, 대문자, 숫자, 영숫자가 아닌 문자가 포함되어 있는지 확인합니다. 비밀번호 길이가 유효한지도 확인합니다.
비밀번호 만료: 비밀번호를 정기적으로 변경해야 합니다.
AlloyDB Omni에서 지원하는 비밀번호 정책 플래그 목록은 비밀번호 정책 플래그를 참고하세요.
비밀번호 유효성 검사 라이브러리 미리 로드
AlloyDB Omni에서 비밀번호 정책이 적용되려면 alloydb_password_validation
라이브러리를 로드해야 합니다. 이 라이브러리를 로드하려면 다음을 실행합니다.
AlloyDB Omni 설치의
postgresql.conf
구성 파일을 찾아 텍스트 편집기에서 엽니다.shared_preload_libraries
줄을 찾아alloydb_password_validation
가 포함되어 있는지 확인합니다. 계정이 표시되지 않으면 계정을 추가해야 합니다. 완료되면shared_preload_libraries
선이 다음과 같이 표시됩니다.shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
비밀번호 복잡성 적용
비밀번호 복잡성 정책을 적용하려면 다음 단계를 따르세요.
postgresql.conf
파일이 비밀번호 유효성 검사 라이브러리를 미리 로드하는지 확인합니다.password.enforce_complexity
플래그를ON
로 설정합니다.비밀번호 정책 플래그를 사용하여 비밀번호 정책을 정의합니다.
예를 들어 비밀번호에 대문자 1개, 숫자 1개가 포함되어야 하며 길이가 10자(영문 기준) 이상이어야 한다는 비밀번호 정책을 적용하려면 postgresql.conf
파일에서 다음을 설정합니다.
password.enforce_complexity = ON
password.min_uppercase_letters = 1
password.min_numerical_chars = 1
password.min_pass_length = 10
이러한 플래그가 설정된 후 이 비밀번호 정책을 준수하지 않는 데이터베이스 사용자 비밀번호를 설정하려고 하면 실패합니다. 예를 들어 이 정책을 설정하면 비밀번호 foo
가 10자 미만이고 숫자나 대문자가 포함되어 있지 않으므로 다음 psql
클라이언트 명령어가 실패합니다.
CREATE USER USERNAME WITH PASSWORD foo;
비밀번호 만료 적용
비밀번호 만료 정책을 적용하려면 다음 단계를 따르세요.
postgresql.conf
파일이 비밀번호 유효성 검사 라이브러리를 미리 로드하는지 확인합니다.password.enforce_expiration
플래그를ON
로 설정합니다.비밀번호가 설정된 후 만료되는 일수로
password.expiration_in_days
플래그를 설정합니다.password.notify_expiration_in_days
플래그를 비밀번호 만료 전에 사용자가 비밀번호 만료 알림을 받기 시작하는 일수로 설정합니다.
예를 들어 비밀번호가 30일 후에 만료되고 비밀번호가 만료되기 15일 전에 사용자에게 알림이 전송된다고 하는 비밀번호 정책을 적용하려면 postgresql.conf
파일에서 다음을 설정해야 합니다.
password.enforce_expiration = ON
password.expiration_in_days = 30
password.notify_expiration_in_days = 15
사용자의 비밀번호가 만료되면 해당 사용자는 AlloyDB Omni에 연결할 수 없습니다. 사용자의 비밀번호를 재설정하려면 다음 단계를 따르세요.
psql
를 사용하여 AlloyDB Omni에 연결합니다. 예를 들어 Docker를 사용하여 AlloyDB Omni를 설치한 경우 다음 명령어를 실행합니다.docker exec -it CONTAINER-NAME psql -h localhost -U postgres
postgres=#
프롬프트에서 다음 명령어를 실행합니다.ALTER USER USERNAME WITH 'NEW-PASSWORD';
사용자 비밀번호 변경에 관한 자세한 내용은 PostgreSQL 문서의 ALTER ROLE
를 참고하세요.
비밀번호에 사용자 이름 허용 안함
비밀번호에 사용자 이름이 포함되지 않도록 하는 정책을 적용하려면 다음 단계를 따르세요.
postgresql.conf
파일이 비밀번호 유효성 검사 라이브러리를 미리 로드하는지 확인합니다.password.enforce_password_does_not_contain_username
를ON
로 설정합니다.
예를 들어 비밀번호에 사용자 이름이 하위 문자열로 포함되지 않도록 하려면 postgresql.conf
파일에서 다음을 설정합니다.
password.enforce_password_does_not_contain_username = ON
이 플래그가 설정되면 비밀번호 alex-secret
에 사용자 이름 alex
가 포함되어 있으므로 다음 작업이 실패합니다.
CREATE USER alex WITH PASSWORD 'alex-secret';
다음 단계
- AlloyDB AlloyDB Omni를 백업 및 복원하는 방법을 알아보세요.
- 읽기 전용 복제본 만들기