개발/Vault

Vault가 뭘까?

우라릭 2022. 9. 27. 17:29

0. 출처

1. Vault란?

Vault는 identity 기반 secret, encryption 관리 시스템입니다. Vault UI, CLI, HTTP API로 secret과 같은 민감한 데이터를 안전하게 저장, 관리할 수 있습니다.

 

1.1. 용어 설명

용어 설명
Identity 기반 암호화 email과 같은 잘 알려진 identity로부터 공개키를 생성할 수 있는 공개키 암호화 방식
Secret 공을 들여서 접근 제어를 하고싶은 모든 것

2. 왜 Vault가 필요할까?

많은 기업들은 비밀번호, API 키 등 중요한 비밀 정보를 조직 전체에 흩뿌려놓습니다. 예를 들어, 일반 텍스트 파일, 소스 코드, 설정 파일 등등..

이렇게 했을 시에 크게 2가지 문제가 생길 수 있습니다.

  1. 권한 문제 - 어떤 비밀 정보가 누구에게 부여된 것이고 어떤 인증에 쓰는지 알기 힘듦
  2. 보안 문제 - 내/외부의 공격자에 취약해질 수 있음

=> Vault는 이런 문제점들에 대한 솔루션을 제공합니다. 따라서 모든 비밀 정보를 한 곳에 모아 저장하고 관리합니다.

 

여기에 더해 Vault는 자원에 접근하기 위한 인증/인가와 사용자의 행동을 추적할 수 있는 몇몇 기능을 제공합니다.

  • Secure Secret Storage - Vault는 비밀 정보를 저장하기 전에 이를 암호화하고 저장합니다.
  • Dynamic Secrets - Secret을 필요에 따라 생성하고 삭제합니다. 예를 들어, 서버가 AWS S3 접근 권한이 필요해서 Vault에 요청을 보내면 Vault는 이에 맞는 secret을 만들어 보낸 다음 일정 시간 후에 삭제합니다.
  • Data Encryption - Vault는 데이터의 저장 없이 암/복호화를 할 수 있습니다. Vault를 사용해 개발자는 굳이 암/복호화 메소드를 직접 만들지 않아도 암/복호화를 할 수 있습니당.