인포그랩
home
회사 소개
home

Vault 구축하기

소개

오늘날 끊임없이 진화하는 디지털 환경에서는 민감한 데이터의 보안을 보장하는 것이 조직의 최우선 과제가 되었습니다. 바로 이 점이 HashiCorp Vault의 역할입니다. Vault는 인프라 관리 솔루션의 전문성으로 유명한 소프트웨어 회사인 해시코프(HashiCorp)에서 개발한 오픈 소스 도구입니다. 이 도구는 최신 컴퓨팅 환경에서 비밀(secret) 및 기밀 정보를 안전하게 저장, 액세스, 관리할 수 있도록 특별히 설계되었습니다.
Vault에서 비밀은 비밀번호, API 키, 토큰, 암호화 키, 애플리케이션과 서비스가 제대로 작동하는 데 필요한 기타 기밀 정보 등 다양한 종류의 민감한 데이터를 포함합니다. 이러한 기밀을 보호하고 액세스를 엄격하게 통제하는 것은 조직의 인프라와 애플리케이션의 전반적인 보안을 보장하는 데 있어 가장 중요합니다.
Vault는 민감한 데이터를 보호하고 중요한 리소스에 안전하게 액세스할 수 있는 강력한 솔루션으로 부상했습니다. 다재다능한 기능 덕분에 클라우드 네이티브 설정, DevOps 워크플로, 마이크로서비스 아키텍처를 비롯한 다양한 환경에서 널리 사용되고 있습니다. Vault를 활용하면 조직은 강력한 보안 태세를 유지하여 가장 중요한 자산을 보호할 수 있습니다.
클라우드와 쿠버네티스 클러스터 환경에서는 Vault의 중요성이 더욱 커집니다. 이러한 동적이고 복잡한 에코시스템은 비밀 관리, 인증, 암호화에 대한 정교한 접근 방식을 요구합니다. Vault는 동적 비밀, 데이터 암호화, 세분화된 액세스 제어, 안전한 키 관리와 같은 기능을 제공함으로써 이러한 영역에서 탁월합니다.
Vault를 클라우드 네이티브 및 Kubernetes 설정과 통합함으로써 조직은 애플리케이션의 비밀을 효율적으로 관리하고, 안전한 통신 채널을 유지하며, 클러스터 내에서 서비스를 원활하게 인증할 수 있습니다. 또한, Vault는 고가용성을 지원하므로 잠재적인 인프라 장애가 발생하더라도 시크릿에 대한 지속적인 액세스를 보장합니다.
Vault를 사용하면, 조직은 보안 조치를 강화하고, 규제 표준을 준수하며, 안전한 애플리케이션 개발 및 배포를 위한 견고한 기반을 구축할 수 있습니다. 또한 Vault의 감사 기능은 비밀 액세스에 대한 중요한 인사이트를 제공하여 조직의 규정 준수 및 보안 노력에 기여합니다.
학습의 결과로 Vault와 Vault Secrets Operator를 Kubernetes 클러스터에 배포합니다. 이후 Vault를 이용하여 비밀 및 기밀 정보를 안전하게 저장하고 관리할 수 있습니다. 또한, Vault Secrets Operator를 사용하여 Vault 비밀을 Kubernetes Secrets에 동기화할 수 있습니다.

Vault란?

HashiCorp Vault는 ID 기반 비밀 및 암호화 관리 시스템입니다. Vault는 인증 및 권한 부여 방법으로 게이트가 설정된 암호화 서비스를 제공합니다. Vault의 UI, CLI 또는 HTTP API를 사용하면 비밀 및 기타 민감한 데이터에 대한 액세스를 안전하게 저장 및 관리하고, 엄격하게 제어(제한)하며, 감사할 수 있습니다.
최신 시스템에서는 데이터베이스 자격증명, 외부 서비스를 위한 API 키, 서비스 지향 아키텍처 통신을 위한 자격증명 등 다양한 비밀에 대한 액세스가 필요합니다. 특히 플랫폼마다 다를 수 있기 때문에 누가 어떤 비밀에 액세스하는지 파악하기 어려울 수 있습니다. Vault는 신뢰할 수 있는 애플리케이션 및 사용자 ID 소스를 기반으로 비밀 및 시스템에 대한 액세스를 중앙에서 관리하여 이러한 문제를 해결합니다.
Vault의 주요 기능은 다음과 같습니다:
안전한 비밀 저장 : 임의의 키/값 비밀을 Vault에 저장할 수 있습니다.
동적 비밀 : Vault는 AWS 또는 SQL 데이터베이스와 같은 일부 시스템에 대해 온디맨드 방식으로 비밀을 생성할 수 있습니다.
데이터 암호화 : Vault는 데이터를 저장하지 않고 암호화 및 복호화할 수 있습니다.
임대 및 갱신 : Vault의 모든 비밀에는 임대가 연결되어 있습니다. 임대가 끝나면 Vault는 해당 비밀을 자동으로 해지합니다. 고객은 내장된 갱신 API를 통해 임대를 갱신할 수 있습니다.
해지 : Vault는 시크릿 해지를 기본적으로 지원합니다.

Vault Secrets Operator란?

Vault Secrets Operator는 CRD(Custom Resource Definitions) 세트를 활용하여 Vault와 Kubernetes 간에 Secret을 동기화하는 Kubernetes Operator입니다.
컨트롤러는 CRDs 변경 사항을 지속적으로 추적 및 감시하여 Vault와 Kubernetes Secret을 동기화합니다. Vault Operator에서 인증, 접속, 동기화 등을 정의 및 제어하는데 사용되는 리소스 이름은 VaultAuth, VaultConnection, VaultDynamicSecret, VaultPKISecret, VaultStaticSecret으로 관리합니다.
Vault Operator는 다음 기능을 지원합니다.
모든 Vault Engine 지원
Pod의 ServiceAccount를 사용한 쿠버네티스 인증
Deployment, Replicaset, StatefulSet 리소스에서 Secret 변경사항 체크
Vault Secret과 Kubernetes Secret 동기화

학습내용

Vault, Vault Operator Helm 차트 리포지터리를 구성하는 방법
Vault, Vault Operator Helm 차트의 구성 정보를 배포 환경에 맞게 설정하는 방법
Helm 차트로 Vault, Vault Operator를 배포하고 확인하는 방법

아키텍쳐

사전 준비사항

기본 요건

Kubernetes에 대한 기본 개념
Helm, kubecl에 대한 기본 개념
Vault Secret에 대한 이해

필요 항목

Vault를 배포할 수 있는 Kubernetes Cluster 및 환경