사용자 잠금(User lockout)
사용자 잠금(User lockout)
사용자가 짧은 시간 안에 여러 번 잘못된 자격 증명을 제공하면, Vault는 잠시 동안 자격 증명 검증을 시도하지 않고 즉시 permission denied 오류를 반환합니다. 이 동작을 "user lockout"이라고 합니다. 사용자가 잠기는 시간을 "lockout duration"이라고 합니다. 사용자는 lockout duration이 지난 후 로그인할 수 있습니다. 사용자가 잠기게 되는 실패한 로그인 시도 횟수를 "lockout threshold"라고 합니다. lockout threshold 카운터는 몇 분 동안 로그인 시도가 없거나 성공적인 로그인 시도 후 0으로 재설정됩니다. 로그인 시도가 없을 때 카운터가 0으로 재설정되는 기간을 "lockout counter reset"이라고 합니다. 이는 자동화된 요청과 대상 요청 모두, 즉 사용자 기반 비밀번호 추측 공격과 자동화된 공격 모두를 막을 수 있습니다.
출처: 문서
본문
참고 user lockout은 요청 처리 초기에 발생하며, 유효하고 기존인 사용자 계정 이름의 유효성이나 존재 여부에 대한 정보를 유출할 수 있습니다.
user lockout 기능은 기본적으로 활성화됩니다. "lockout threshold"의 기본값은 5회, "lockout duration"은 15분, "lockout counter reset"은 15분입니다.
user lockout 기능은 다음과 같이 비활성화할 수 있습니다:
- 환경 변수
VAULT_DISABLE_USER_LOCKOUT을 사용해 전역적으로 비활성화할 수 있습니다. - 구성 파일의
user_lockout스탠자 안에서disable_lockout파라미터를 사용해 지원되는 모든 auth method(ldap, userpass, approle) 또는 특정 지원 auth method에 대해 비활성화할 수 있습니다. 자세한 내용은 user lockout configuration을 참고하세요. - "auth tune"을 사용해 특정 auth mount에 대해 비활성화할 수 있습니다. 자세한 내용은 auth tune command 또는 auth tune api를 참고하세요.
참고: 이 기능은 Vault 1.13 버전부터 사용 가능하며 userpass, ldap, approle auth method에서만 지원됩니다.
user_lockout 스탠자
user_lockout 스탠자는 Vault에서 실패한 로그인에 대한 사용자 잠금 동작의 다양한 구성을 지정합니다. "all" user_lockout 스탠자 이름으로 지원되는 모든 auth method(userpass, ldap, approle)에 대해 구성하거나, 스탠자에 auth method 이름을 사용해 특정 auth method에 대해 구성할 수 있습니다.
지원되는 user_lockout 스탠자 이름은 all, userpass, ldap, approle입니다.
특정 auth method에 대한 구성은 구성 파일에서 "all" user_lockout 스탠자 이름으로 지정한 모든 auth method에 대한 구성보다 우선합니다.
구성
user lockout 구성은 Vault 구성 파일의 user_lockout 스탠자를 통해 수행됩니다:
user_lockout [NAME] {
[PARAMETERS...]
}
예를 들어:
user_lockout "all" {
lockout_duration = "10m"
lockout_counter_reset = "10m"
}
user_lockout "userpass" {
lockout_threshold = "25"
lockout_duration = "5m"
}
user_lockout "ldap" {
disable_lockout = "true"
}
여기서 user lockout 기능은 ldap auth method에 대해 비활성화됩니다. Userpass auth method는 lockout threshold 25, lockout duration 5분, lockout counter reset 10분을 가집니다. Approle auth method는 lockout threshold 5(구성되지 않았으므로 기본값으로 간주), lockout duration 10분, lockout counter reset 10분을 가집니다.
주어진 경로의 auth method에 대한 user lockout 구성은 auth tune을 사용해 튜닝할 수 있습니다. 자세한 내용은 auth tune command 또는 auth tune api를 참고하세요.
user_lockout 파라미터
모든 user_lockout 구성에서 다음 옵션을 사용할 수 있습니다.
lockout_threshold(string: "")- 사용자가 잠기게 되는 실패한 로그인 시도 횟수를 지정합니다.lockout_duration(string: "")- 사용자가 잠기는 기간을 지정합니다.lockout_counter_reset(string: "")- 실패한 로그인 시도가 없을 때 lockout 카운터가 재설정되는 기간을 지정합니다.disable_lockout(bool: false)- true로 설정하면 user lockout 기능을 비활성화합니다.