일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백업
- SHR
- devops
- DATA 백업
- SSH OTP
- 구성관리
- 앤서블
- 커널 파라미터
- 통합 풀 백업
- 전체 백업
- 파일시스템
- Secret Engine
- hashicorp
- 유닉스
- backend storage
- 리눅스
- vault agent
- Vault
- 자동화
- 차분 백업
- secret engines
- 인프라
- kv
- auth methods
- VIRT
- IAC
- key/value
- Role
- REST API
- 시스템
- Today
- Total
클라우드 아카이브
[Vault] Vault 개념/구성/작동원리 본문
0. 개요
개발자와 시스템 운영자가 업무를 수행할 때 SSH Signed RSA 접속, DB 계정 정보 등에 활용되는 비밀 정보를 빈번하게 사용하게 됩니다. 다양한 기업에서는 엑셀 파일 암호화, 자체 자산관리시스템을 활용한 정보 관리 등을 통해 해당 비밀 정보를 효과적으로 관리하기 위해 노력해왔습니다. 하지만 관리 대상 IT 자산이 선형적으로 증가함과 동시에 자산관리시스템 관리에 따른 부담 증가로 이어지는 문제가 발생했는데요. Hashicorp에서는 이러한 문제점을 해결하기 위해 비밀 정보를 중앙에서 효율적으로 관리하도록 도와주는 Vault라는 솔루션을 개발하게 됩니다.
1. Vault란?
Hashicorp Vault를 한 문장으로 정의하면 민감한 데이터와 비밀 정보(Secrets)를 중앙에서 효과적으로 보호 및 관리해주는 솔루션입니다. Vault는 REST API를 기반으로 작동하며, UI 또는 CLI를 통해 각종 기능을 다룰 수 있습니다. 또한 Vault는 OIDC 솔루션과 연동할 수 있도록 하여 인증된 사용자에게 RBAC 혹은 ABAC을 기반으로 권한을 부여 및 관리할 수 있습니다.
2. Vault 구성
2-1. 구성 요소
2-1-1. Storage Backend
Vault에 의해 암호화된 데이터를 저장할 스토리지를 의미합니다. 22개 이상의 스토리지를 지원하고 있으며 각 스토리지마다 지원해주는 가용성 및 보안성 등이 다르니 구성 전 환경에 맞는 솔루션을 찾아야합니다. 일반적으로 환경에 따라 아래와 같이 구성합니다.
- 개발 환경 : FileSystem 또는 In-memory
- 운영 환경 : Consul 또는 Integrated Storage (Raft)
관련 내용은 하기와 같이 Hashicorp 공식 홈페이지에서 안내하고 있습니다.
2-1-2. Barrier
사전상 의미 그대로 장벽 즉, 외부에서 Vault에 함부로 접근할 수 없도록 막아주는 벽이라고 생각하면 됩니다. IT 인프라에서 Bastion과 비슷한 역할을 수행하며, 외부에서 Vault 컴포넌트 혹은 Storage Backend에 저장된 데이터에 접근할 때 Barrier를 반드시 통과해야 됩니다. Vault Barrier에서는 일반적으로 Unseal된 Vault 컴포넌트 혹은 복호화된 Secret 데이터만 접근할 수 있도록 합니다.
2-1-3. Auth Method
Vault 사용자가 서버에 인증하는 방식을 정의합니다. 일반적으로 Keycloak 등과 같은 SSO (Single Sign On) 솔루션과 연계하여 사용자 인증을 수행합니다. Vault에서 제공하는 사용자 인증 솔루션은 아래와 같습니다.
Auth Method와 논외로, Vault에서는 인증된 사용자에 대해 AWS IAM의 RBAC 혹은 ABAC 기반으로 권한 부여를 할 수 있도록 Policy 및 Group 기반 Authorization 관리 기능을 제공합니다.
2-1-4. Secret Engine
데이터를 안전하게 저장/생성 및 암호화/복호화할 수 있도록 해주는 컴포넌트입니다. 본 기능을 활용하여 OS, DBMS 등에 존재하는 Secret 정보를 암호화/복호화할 수 있습니다. Secret Engine은 REST API 혹은 CLI를 기반으로 활성화(enabled) 및 속성을 핸들링할 수 있습니다. Secret Engine을 통해 사용자는 SSH, DBMS 등과 연계하여 Secret 정보를 관리할 수 있습니다.
이외에도 Vault 공식 홈페이지(링크)를 통해 지원되는 솔루션을 확인할 수 있습니다.
3. 마무리
본 포스팅에서는 Vault를 사용하기 위해 알아야할 가장 기초적인 내용을 다뤘습니다. (위 기능 외에도 Audit Devices, Vault Agent 등 Vault에서 제공하는 다양한 컴포넌트가 존재합니다.) 어떤 오픈소스를 학습하던지 해당 도구를 사용하는 목적과 작동원리 및 구성요소를 먼저 학습하는게 중요한 것 같습니다. 따라서 본 포스팅에서는 해당 내용을 다뤘으며, 다음 포스팅에서는 좀더 심화된 개념 또는 실습과 관련된 포스팅을 다뤄보겠습니다.
[출처]
- https://www.vaultproject.io/
- https://www.joinc.co.kr/w/man/12/vault
- https://learn.hashicorp.com/tutorials/vault/getting-started-install?in=vault/getting-started
- https://www.vaultproject.io/docs/configuration/storage
- https://learn.hashicorp.com/tutorials/vault/storage-migration-checklist
'Cloud Native Solution > [Hashicorp] Vault' 카테고리의 다른 글
[vault] Namespace 개념과 특징 및 실습 (0) | 2022.09.11 |
---|---|
[Hashicorp][HA] Vault Raft 클러스터 구성 (0) | 2022.08.27 |
[Vault][Secret Engine] SSH - OTP 구성 방식 (0) | 2022.08.19 |