DBAtlas · 데이터베이스 운영 아틀라스

비밀번호 정책, 로그인 실패 잠금, 무중단 비밀번호 교체

MySQL보안

명령어

-- Password strength policy (component)
INSTALL COMPONENT 'file://component_validate_password';
SET PERSIST validate_password.policy = 'MEDIUM';
SET PERSIST validate_password.length = 12;
SELECT VALIDATE_PASSWORD_STRENGTH('Summer2024') AS score;

-- Failed-login lockout, password lifetime, history
ALTER USER 'ana'@'%' FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1
  PASSWORD EXPIRE INTERVAL 90 DAY PASSWORD HISTORY 5 PASSWORD REUSE INTERVAL 365 DAY;

-- Zero-downtime rotation: dual password
ALTER USER 'svc_app'@'10.0.%' IDENTIFIED BY 'N3w#AppSecret2025' RETAIN CURRENT PASSWORD;
-- Once every application uses the new password
ALTER USER 'svc_app'@'10.0.%' DISCARD OLD PASSWORD;

하는 일

약한 비밀번호를 거부하는 정책을 활성화하고, 연속 로그인 실패 시 계정을 일시 잠그며, 비밀번호 수명과 재사용 규칙을 설정한다. dual password를 사용하면 애플리케이션을 하나씩 갱신하는 동안 서비스 계정 비밀번호를 무중단으로 변경한다.

사용 시점

보안 감사/컴플라이언스(PCI, ISO 27001) 및 서비스 계정 비밀번호 교체 시.

주의

정책은 새로 설정/변경된 비밀번호에만 적용되며 기존의 약한 비밀번호는 감지하지 않는다. 서비스 계정에서 FAILED_LOGIN_ATTEMPTS는 잘못 설정된 클라이언트 하나가 계정을 잠가 장애를 일으킬 수 있으므로 사람 계정에 사용한다. PASSWORD_LOCK_TIME 단위는 일이다(UNBOUNDED: 수동 해제 시까지). 해제는 ALTER USER ... ACCOUNT UNLOCK으로 한다. PASSWORD EXPIRE는 서비스 계정에서 예기치 않은 장애를 일으키므로 PASSWORD EXPIRE NEVER와 dual password 교체를 권장한다.

DBAtlas에서 열기 →

관련 항목