사용자 이름 템플릿
사용자 이름 템플릿 (Username Templating)
Vault의 사용자 이름 템플릿(Username Templating) 기능은 동적 시크릿이나 인증 메서드가 생성하는 사용자 이름(Username) 을 식별 가능하고 예측 가능한 형식으로 자동 생성할 수 있게 해주는 기능입니다. 템플릿을 사용하면 생성된 자격 증명의 소유자를 추적하기 쉬워지고, 이름 충돌을 줄일 수 있습니다.
출처: 문서
본문
사용자 이름 템플릿이란
Vault가 동적 자격 증명(예: 데이터베이스 사용자, 클라우드 자격 증명, 기타 시크릿 엔진)을 만들 때, 기본 생성 규칙 대신 사용자가 정의한 템플릿에 따라 사용자 이름을 생성할 수 있습니다. 템플릿에는 역할 이름, 엔티티 정보, 난수 등 다양한 변수를 조합할 수 있습니다.
템플릿 변수
일반적으로 사용할 수 있는 변수에는 다음이 있습니다.
- 라이선스/역할 관련 — 역할 이름(
role), 시크릿 엔진 마운트 경로 등 - 엔티티 관련 — 엔티티 ID, 표시 이름, 사용자 이름 등
- 고유값 — 난수, 타임스탬프, 랜덤 문자열 등
- 기타 — 네임스페이스, 메타데이터 값
사용 예시
데이터베이스 동적 자격 증명의 사용자 이름을 템플릿으로 지정합니다.
$ vault write database/roles/my-role \
db_name="mydb" \
creation_statements="CREATE USER \"{{name}}\" ..." \
username_template="v-{{.RoleName}}-{{random 8}}"
이 예시는 역할 이름과 8자리 난수를 조합한 사용자 이름(예: v-my-role-aB3dF6kL)을 생성합니다.
장점
- 추적성 향상 — 어느 역할·사용자의 자격 증명인지 이름에서 파악할 수 있습니다.
- 충돌 감소 — 난수·고유값을 조합해 중복 이름을 줄입니다.
- 일관성 — 조직 표준에 맞는 명명 규칙을 적용할 수 있습니다.
주의사항
- 지원되는 변수와 템플릿 문법은 시크릿 엔진에 따라 다릅니다.
- 일부 시크릿 엔진(특히 데이터베이스)은 사용자 이름 길이 제한(예: 63자)이 있으므로 주의합니다.
- 템플릿 변수의 정확한 목록은 각 시크릿 엔진 문서를 확인하세요.