Vault 토큰

Vault 토큰 (Tokens)

Vault 안에서 인증의 핵심 수단이 **토큰(token)**이에요. 토큰은 직접 사용할 수도 있고, 인증 메서드(auth method)가 외부 아이덴티티를 바탕으로 토큰을 동적으로 생성해줄 수도 있어요.

출처: https://developer.hashicorp.com/vault/docs/concepts/tokens

vault server -dev(비-dev 서버면 vault operator init)를 실행하면 초기 "root token"이 출력돼요. 이게 Vault의 첫 인증 수단이자, 비활성화할 수 없는 유일한 인증 방법이에요. GitHub 같은 모든 외부 인증 메커니즘도 결국은 동적으로 생성된 토큰으로 귀결돼요. 이 토큰들은 수동으로 만든 일반 토큰과 모든 속성이 같아요.

토큰은 정보에 매핑돼요. 가장 중요한 건 **정책(policy)**의 집합이에요. 이 정책이 토큰 소유자가 Vault에서 무엇을 할 수 있는지를 통제해요. 그 외에도 생성 시각·마지막 갱신 시각 같은 메타데이터가 붙고, 이건 감사 로그에 남아요.

토큰 타입은 크게 세 가지예요 — service, batch, recovery. service와 batch를 비교하면,

속성 Service Batch
Root 토큰 가능 아니오
자식 토큰 생성 아니오
갱신 가능 아니오
수동 폐기 가능 아니오
주기적(periodic) 가능 아니오
명시적 최대 TTL 아니오(항상 고정 TTL)

service 토큰은 "일반적인" Vault 토큰으로, 갱신·폐기·자식 토큰 생성 등 모든 기능을 지원해요. 대신 만들고 추적하는 비용이 커요. batch 토큰은 필요한 정보를 담은 암호화된 블롭이라 디스크 저장이 필요 없어서 아주 가볍고 확장성이 좋지만, service 토큰의 유연성·기능 대부분이 빠져 있어요.

토큰 프리픽스는 타입을 나타내요. Vault 1.9.x 이하에서는 service=s., batch=b., recovery=r.였는데, 1.10부터 service=hvs., batch=hvb., recovery=hvr.로 바뀌었어요. 프리픽스 뒤에는 24자 이상의 임의 문자열이 붙어요(예: hvs.CvmS4c0DPTvHv5eJgXWMJg9r). root 토큰은 root 정책이 붙은 토큰으로, Vault에서 뭐든 할 수 있어요. 유일하게 갱신 없이 만료되지 않도록 설정 가능한 타입이라 의도적으로 만들기 어렵게 설계되어 있어요.

더 알아보기