TOTP 시크릿 엔진
TOTP 시크릿 엔진
TOTP 시크릿 엔진은 TOTP 표준에 따라 시간 기반 크레덴셜을 생성해요. 이 시크릿 엔진은 새 키를 생성하고 그 키로 생성된 비밀번호를 검증하는 데도 사용할 수 있어요.
TOTP 시크릿 엔진은 생성기(Google Authenticator처럼)와 제공자(Google.com 로그인 서비스처럼) 역할을 모두 할 수 있어요.
출처: 문서
본문
생성기(Generator)로서
TOTP 시크릿 엔진은 TOTP 코드 생성기 역할을 할 수 있어요. 이 모드에서는 Google Authenticator 같은 전통적인 TOTP 생성기를 대체할 수 있어요. 코드 생성 능력이 정책으로 보호되고 전체 과정이 감사되므로 보안 레이어가 하나 더 추가돼요.
설정 (Setup)
대부분의 시크릿 엔진은 본래 기능을 수행하기 전에 미리 설정을 해 둬야 해요. 이 단계들은 보통 운영자나 설정 관리 도구가 수행해요.
1. TOTP 시크릿 엔진을 활성화합니다.
$ vault secrets enable totp
Success! Enabled the totp secrets engine at: totp/
기본적으로 시크릿 엔진은 엔진 이름과 같은 경로에 마운트돼요. 다른 경로에 활성화하려면 -path 인자를 사용하면 됩니다.
2. 이름 있는 키를 구성합니다. 이 키의 이름은 그 용도를 나타내는 사람이 알아볼 수 있는 식별자가 돼요.
$ vault write totp/keys/my-key \
url="otpauth://totp/Vault:[email protected]?secret=Y64VEVMBTSXCYIWRSHRNDZW62MPGVU2G&issuer=Vault"
Success! Data written to: totp/keys/my-key
url은 제3자 서비스가 제공한 바코드의 시크릿 키 또는 값에 해당해요.
사용법 (Usage)
시크릿 엔진이 설정되고 사용자/머신이 적절한 권한을 가진 Vault 토큰을 갖게 되면 크레덴셜을 생성할 수 있어요.
1. 키 이름으로 /code 엔드포인트를 읽어 새 시간 기반 OTP를 생성합니다.
$ vault read totp/code/my-key
Key Value
--- -----
code 260610
ACL을 사용하면 신뢰할 수 있는 운영자가 키 정의를 관리하고, 사용자와 애플리케이션이 읽을 수 있는 크레덴셜이 제한되도록 TOTP 시크릿 엔진 사용을 제한할 수 있어요.
제공자(Provider)로서
TOTP 시크릿 엔진은 TOTP 제공자 역할도 할 수 있어요. 이 모드에서는 새 키를 생성하고 그 키로 생성된 비밀번호를 검증하는 데 사용할 수 있어요.
설정 (Setup)
대부분의 시크릿 엔진은 본래 기능을 수행하기 전에 미리 설정을 해 둬야 해요. 이 단계들은 보통 운영자나 설정 관리 도구가 수행해요.
1. TOTP 시크릿 엔진을 활성화합니다.
$ vault secrets enable totp
Success! Enabled the totp secrets engine at: totp/
기본적으로 시크릿 엔진은 엔진 이름과 같은 경로에 마운트돼요. 다른 경로에 활성화하려면 -path 인자를 사용하면 됩니다.
2. generate 옵션을 사용해 이름 있는 키를 만듭니다. 이는 Vault에게 제공자 역할을 하라고 지시해요.
$ vault write totp/keys/my-user \
generate=true \
issuer=Vault \
[email protected]
Key Value
--- -----
barcode iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAAAAADYoy0BA...
url otpauth://totp/Vault:[email protected]?algorithm=SHA1&digits=6&issuer=Vault&period=30&secret=V7MBSK324I7KF6KVW34NDFH2GYHIF6JY
응답에는 base64 인코딩된 바코드와 OTP URL이 포함돼요. 둘은 동일해요. 이 값을 TOTP로 인증하는 사용자에게 건네주세요.
사용법 (Usage)
1. 사용자로서 제3자 앱이 생성한 TOTP 코드를 검증합니다.
$ vault write totp/code/my-user code=886531
Key Value
--- -----
valid true
API
TOTP 시크릿 엔진은 완전한 HTTP API를 제공해요. 자세한 내용은 TOTP 시크릿 엔진 API 문서를 참고해 주세요.
더 알아보기 (Learn more)
- TOTP 프로토콜 표준에 대한 자세한 내용은 RFC 6238을 참고하세요.
- Vault TOTP 시크릿 엔진 전체 API는 TOTP API 문서를 참고하세요.