1. Hashicorp vault란?
HashiCorp vault는 데이터를 안전하게 저장하는 도구입니다. vault단어의 의미는 금고라는 것을 알면 hashiCorp vault 이미지를 쉽게 연상할 수 있습니다.
vault는 스토리지에 데이터를 저장하는데, 모든 데이터는 암호화되어 있습니다. 따라서 데이터가 유출되더라도 무슨 데이터인지 확인이 불가능합니다. 암호화된 데이터는 vault만 확인할 수 있습니다.
2. vault는 언제 사용할까?
vault는 데이터를 암호화해서 저장해야하고 다른 애플리케이션과 호환이 가능해야 하는 요구사항에 적합합니다. 인터넷을 쓸 수 있는 환경이라면 AWS Secrests Manager 등의 후보가 있지만, 인터넷이 되지 않는 환경이면 vault가 유력한 후보입니다.
vault에 저장되는 데이터는 데이터베이스 계정 비밀번호 등이 있습니다. 애플리케이션은 vault에 저장된 데이터를 읽어 기능을 구현할 수 있습니다. 예를 들어 데이터베이스 로그인이 있습니다.
3. vault 기능
vault 기능 공식문서에 설명되어 있지만 입문자 입장에서 매우 이해하기 어렵습니다. 그래서 제가 이해한 vault 기능을 설명하려고 합니다.
3.1 아키텍처
vault는 vault와 스토리지로 구성됩니다. vault는 데이터를 스토리지에 저장하고 관리합니다.
3.2 데이터 암호화/복호화
vault는 스토리지에 데이터를 저장할 때 암호화키를 사용하여 데이터를 암호화합니다. 그리고 데이터를 조회할 때는 암호화키를 사용하여 복호화합니다.
3.3 데이터 포맷
vault에 저장되는 데이터는 key/value 포맷입니다. 데이터 포맷이 key/value인 이유는 vault가 사용하는 DB엔진이 BoltDB이기 때문입니다. BoltDB는 key/value store입니다.
3.4 API를 제공
vault는 API를 통해 client에게 데이터를 조회,생성,수정,삭제할 수 있도록 합니다.
3.5 API 인증/인가
아무나 데이터를 관리하면 안되기 때문에, vault는 인증/인가 기능이 있습니다. token, SSO 등을 통해 인증을 처리하고 vault policy를 통해 인가 기능을 수행합니다.
3.5 그 외 운영에 편리한 기능
vault가 인기가 많은 이유는 운영을 하는데 있어서 편리한 점이 많기 때문입니다.
- OIDC, SAML을 사용하여 SSO 연동 가능
- UI 지원
- vault CLI지원
- HA MODE 구축 가능
'전공영역 공부 기록' 카테고리의 다른 글
쿠버네티스 버전을 업그레이드 할 때 어떤 전략을 선택해야할까? (in-place, 복제) (0) | 2024.10.20 |
---|---|
hashicorp vault secret엔진을 v2로 업그레이드하는 방법 (0) | 2024.10.13 |
쿠버네티스 statefulset OnDelete 전략 (6) | 2024.10.10 |
쿠버네티스 cpu limit을 설정해야할까? 안해야할까? (1) | 2024.10.06 |
아키텍처 이야기 - 애플리케이션 개수를 증가시키면 요청 처리속도가 빨라질까? (1) | 2024.10.06 |