영상 요약

서버 접근을 위한 키파일 관리에 대한 문제점 존재

  • 온라인으로 공유, 퇴사자/권한 관리의 어려움

이러한 문제점을 해결하기 위해 Vault 를 사용

  • 패키지 매니저, 도커 이미지, HashiCorp Cloud, 바이너리 등의 형태로 적용 가능
  • 여러 사용자 인증 방식 제공(ex. Github, AWS) 하기 때문에 각 조직에 맞는 방식으로 적용 가능
  1. SSH 키파일 기반 서버 접근을 위한 Vault CA (*CA: 인증기관, 엔티티(ex. 개인) 의 신원을 확인하고 전자문서를 발행)
    1. Vault 에 사용자 인증 이후, Public Key 파일을 가지고 인증서를 발급받아 SSH 접근을 필요로 하는 서버에 접근 가능
  2. ID/PW(OTP) 기반 서버 접근을 위한 Vault OTP
    1. 단, 접근하려고 하는 서버에 Vault ssh helper agent 설치 및 ssh 인증 방식을 수정해줘야 함
    2. Vault 에 사용자 인증 이후, OTP 를 생성하여 해당 정보를 가지고 서버에 접근 가능
  3. 장애/SPoF 방지를 위한 Vault Cluster
    1. 리더: N 팔로워 구조로, Raft 스토리지 (Vault 통합 스토리지) 에 데이터 복제하기 때문에 리더에 문제가 생겨도 팔로워 중 하나가 리더가 되면서 중단 없이 서비스 가능

느낀점

서비스를 운영하다보면 서버에 필요한 시크릿 데이터, 클라우드 계정 크리덴셜 등 민감한 정보를 다룰 때마다 이를 안전하게 관리하는 방법까지 고려하게 되는데, Vault 가 이에 대한 하나의 대안책이 되지 않을까 싶다.

또한 영상에서 설명된 것 외에도 Vault 에서 제공하는 기능(시크릿 엔진) 들이 많기 때문에 상황에 맞는 기능들을 잘 사용한다면 운영하는 입장에서도, 보안적인 측면에서도 좋은 솔루션이 될 것 같다.

  • Ex) 쿠버네티스 Secret 과 연동하여 서버에 필요한 시크릿 데이터를 Vault 에서 관리
  • Ex) MYSQL 계정 생성 및 관리
  • Ex) 개발자의 쿠버네티스 kubeconfig 파일 및 AWS Credential 등 계정 크리덴셜 관리