본문 바로가기
DevOps

면접용 Vault 환경변수 주입 설명

by Rainbound-IT 2026. 4. 9.
반응형

 

 

  한 문장 요약 (엘리베이터 피치)

  ▎ "Vault Secrets Operator를 사용해서, Vault에 저장된 시크릿을 자동으로 Kubernetes Secret으로 동기화하고, Pod에 환경변수로 주입하는 구조입니다."


  ---
  단계별 설명 (면접 답변용)

  "크게 4단계로 동작합니다."

  1단계: 시크릿 저장

  ▎ "시크릿은 Vault의 KV-v2 엔진에 환경/서비스별로 구조화해서 저장합니다. 예를 들어 secret/prod/myapp/config 경로에 DB 접속정보나 API 키를 넣습니다."


  2단계: 동기화 선언

  ▎ "VaultStaticSecret이라는 CRD를 선언하면, VSO(Vault Secrets Operator)가 이걸 감시하다가 Vault에서 값을 가져와서 Kubernetes Secret으로 자동 생성합니다. 30초 주기로 동기화됩니다."


  3단계: Pod 주입

  ▎ "Pod 스펙에서 envFrom: secretRef로 해당 K8s Secret을 참조하면, Vault의 KV key가 그대로 컨테이너 환경변수가 됩니다."

  4단계: 자동 갱신

  ▎ "Reloader라는 컨트롤러가 Secret 변경을 감지해서 Pod를 자동 재시작합니다. 그래서 Vault에서 시크릿을 변경하면 무중단으로 반영됩니다."


  ---
  예상 꼬리 질문과 답변

  Q: "왜 Agent Injector 안 쓰고 VSO를 선택했나요?"

  ▎ "Agent Injector는 모든 Pod에 sidecar를 붙여야 해서 리소스 오버헤드가 큽니다. VSO는 중앙 컨트롤러 하나가 모든 시크릿을 관리하므로 리소스 효율적이고, 네이티브 K8s Secret으로 변환되니까 기존 envFrom 패턴을
  ▎ 그대로 쓸 수 있습니다."


  Q: "CSI Driver 방식과 차이는?"

  ▎ "CSI는 시크릿을 파일로 마운트하는 방식이라 환경변수로 쓰려면 추가 작업이 필요합니다. VSO는 K8s Secret을 직접 생성하니까 envFrom으로 바로 환경변수 주입이 가능합니다."


  Q: "Vault 인증은 어떻게 하나요?"

  ▎ "Kubernetes Auth Method을 사용합니다. VSO의 ServiceAccount 토큰으로 Vault에 인증하고, Vault는 AWS KMS로 auto-unseal 되어 재시작 시에도 수동 개입이 필요 없습니다."


  Q: "이전에는 어떤 방식이었나요?"

  ▎ "AWS Secrets Manager + External Secrets Operator 조합이었는데, 멀티클라우드 확장성과 시크릿 중앙 관리를 위해 Vault로 마이그레이션했습니다."


  Q: "시크릿이 변경되면 어떻게 되나요?"

  ▎ "VSO가 30초마다 Vault와 동기화해서 K8s Secret을 업데이트하고, Reloader가 변경을 감지해서 관련 Pod를 rolling restart 합니다. 애플리케이션 재배포 없이 시크릿 교체가 가능합니다."

반응형

댓글