사용자 이름·비밀번호(Userpass) 인증 메서드
사용자 이름·비밀번호(Userpass) 인증 메서드
userpass 인증 메서드는 사용자가 사용자 이름과 비밀번호 조합으로 Vault에 인증할 수 있게 해줘요.
출처: 문서
본문
사용자 이름/비밀번호 조합은 users/ 경로를 사용해 인증 메서드에 직접 구성돼요. 이 메서드는 외부 소스에서 사용자 이름과 비밀번호를 읽을 수 없어요.
이 메서드는 제출된 모든 사용자 이름을 소문자로 변환해요. 예를 들어 Mary와 mary는 같은 엔트리예요.
이 문서는 Username & Password 메서드가 Vault의 기본 /auth/userpass 경로에 마운트되어 있다고 가정해요. 인증 메서드는 어디에든 활성화할 수 있으므로 -path 플래그로 CLI 호출을 그에 맞게 업데이트하세요.
인증
CLI 사용
$ vault login -method=userpass \
username=mitchellh \
password=foo
API 사용
$ curl \
--request POST \
--data '{"password": "foo"}' \
http://127.0.0.1:8200/v1/auth/userpass/login/mitchellh
응답은 auth.client_token에 토큰을 포함해요.
{
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"auth": {
"client_token": "c4f280f6-fdb2-18eb-89d3-589e2e834cdb",
"policies": ["admins"],
"metadata": {
"username": "mitchellh"
},
"lease_duration": 0,
"renewable": false
}
}
구성
사용자나 머신이 인증하기 전에 인증 메서드를 미리 구성해야 해요. 이러한 단계는 보통 운영자나 구성 관리 도구가 완료해요.
- userpass 인증 메서드를 활성화하세요. 기본
auth/userpass경로에 userpass 인증 메서드를 활성화해요.-path플래그로 다른 경로를 선택할 수도 있어요.
$ vault auth enable userpass
$ vault auth enable -path=<path> userpass
- 인증을 허용할 사용자로 구성하세요. 이렇게 하면 "admins" 정책에 연결되는 비밀번호 "foo"를 가진 새 사용자 "mitchellh"가 생성돼요. 이것이 필요한 유일한 구성이에요.
$ vault write auth/<userpass:path>/users/mitchellh \
password=foo \
policies=admins
사용자 잠금(User lockout)
사용자가 짧은 시간에 연속으로 잘못된 자격 증명을 여러 번 제공하면 Vault는 잠시 동안 자격 증명 검증을 중단하고, 대신 즉시 permission denied 오류를 반환해요. 이 동작을 "사용자 잠금(user lockout)"이라고 불러요. 사용자가 잠기는 시간을 "잠금 기간(lockout duration)"이라고 해요. 잠금 기간이 지난 후 사용자는 로그인할 수 있어요. 사용자가 잠기게 되는 실패한 로그인 시도 횟수를 "잠금 임계값(lockout threshold)"이라고 해요. 잠금 임계값 카운터는 몇 분 동안 로그인 시도가 없거나 성공적인 로그인 시도가 있으면 0으로 리셋돼요. 로그인 시도가 없을 때 카운터가 0으로 리셋되는 기간을 "잠금 카운터 리셋(lockout counter reset)"이라고 해요. 이 기능은 자동화된 요청과 표적화된 요청, 즉 사용자 기반 비밀번호 추측 공격과 자동화된 공격을 모두 무력화할 수 있어요.
사용자 잠금 기능은 기본적으로 활성화돼요. 기본값은 "잠금 임계값" 5회 시도, "잠금 기간" 15분, "잠금 카운터 리셋" 15분이에요.
사용자 잠금 기능은 다음과 같이 비활성화할 수 있어요.
- 환경 변수
VAULT_DISABLE_USER_LOCKOUT를 사용해 전역적으로 비활성화할 수 있어요. - 구성 파일의
user_lockout스탠자(stanza)에disable_lockout매개변수를 사용해 지원되는 모든 인증 메서드(ldap, userpass, approle) 또는 특정 지원 인증 메서드에 대해 비활성화할 수 있어요. 자세한 내용은 사용자 잠금 구성을 참조하세요. - "auth tune"을 사용해 특정 인증 마운트에 대해 비활성화할 수 있어요. 자세한 내용은 auth tune 명령 또는 auth tune API를 참조하세요.
참고: 이 기능은 Vault 1.13 버전부터 사용할 수 있으며 userpass, ldap, approle 인증 메서드만 지원해요.
API
Userpass 인증 메서드는 완전한 HTTP API를 제공해요. 자세한 내용은 Userpass 인증 메서드 API를 참조하세요.