<aside> 💡

얼마전 2029년까지 TLS 인증서 유효기간을 47일로 단축하겠다는 결정했습니다. https://news.hada.io/topic?id=20371 TLS 인증서가 아니더라도 중요한 IT 시스템에 민감정보를 통제하고 주기적인 교체 등 관리가 필요합니다. K8S 플랫폼을 사용하고 계시다면, Vault/VSO를 통해서 키 관리의 자동화를 구현해보시는 것을 추천드립니다. (참고로, Vault 자체 기능 보다는 VaultK8S에서 설치 및 사용에 중점을 두고 작성되었습니다)

</aside>

Vault 설치 on K8S

목적 : K8S에 Vault 설치Unseal 후 Vault login 해보기

Vault 사용 on K8S

목적 : Vault 에 시크릿 생성 및 애플리케이션에서 시크릿 가져와보기

https://developer.hashicorp.com/vault/tutorials/kubernetes/agent-kubernetes

https://developer.hashicorp.com/vault/tutorials/kubernetes/agent-kubernetes

(1) Vault 에 Secret 를 요청 처리를 위해 사전에 Role(Policy) 설정

(2) 파드 생성 시, 서비스 어카운트 토큰(JWT) 생성

(3) 파드의 애플리케이션이 Vault 에 로그인 과정

3-1) 애플리케이션은 JWT를 전달하여 Vault 로그인 요청

3-2) Vault 는 정보 확인을 위해 K8S API 서버에 TokenReview API 호출

3-3) K8S API 서버는 서비스 어카운트의 이름과 네임스페이스를 반환

3-4) Vault 는 ‘서비스 어카운트 이름, 네임스페이스’를 Vault 해당 시크릿에 정책과 매칭 확인

3-5) 확인 후 Vault 는 Auth Token 을 애플리케이션에게 반환

(4) 파드의 애플리케이션이 Vault 에 Secret 요청 과정

4-1) 애플리케이션은 (3)에서 받은 Auth Token 으로 Vault 해당 시크릿 정보를 요청

4-2) Vault 는 Auth Token 확인 및 매칭 정책 확인

4-3) 확인 후 Vault 는 최종적으로 해당 시크릿 정보를 반환

<aside> 💡

Vault 에서 k8s-auth 인증은 아래 VSO에서도 활용됨. 참고로 AWS EKS에 aws-auth 인증/인가 시에도 유사한 과정을 사용. [NEW] AWS EKS Access Mgmt & Pod Identity

</aside>