mTLS in Multi Clusters

mTLS in Multi Clusters

Kubernetes 다중 클러스터 내 워크로드 간의 안전한 통신을 위해 mTLS 구현
SPIFFE/SPIRE를 활용하여 자동화된 SVID 발급 및 관리 체계 구축

1. Overview

Kubernetes 다중 클러스터 환경에서 SPIFFE/SPIRE를 활용하여 워크로드 간의 안전한 mTLS(Mutual TLS) 통신 환경을 구축하였습니다. Kubernetes 환경에서 자동화된 SVID 발급 및 관리 시스템을 구축하여, 컨테이너 기반의 워크로드 간 Zero-Trust 모델 기반의 보안 통신을 구현했습니다.


SPIFFE Architecture

Architecture Diagram of mtls with SPIRE/SPIFFE

이 아키텍처가 제공하는 주요 효과는 다음과 같습니다.

  • 자동화된 인증서(SVID) 관리로 수동 설정 과정의 복잡성과 운영 실수를 줄이고, 인증서의 만료 및 갱신을 자동으로 처리하여 운영 효율성을 크게 높입니다.

  • Zero-Trust 보안 모델을 적용하여 모든 워크로드 간 통신 요청 시 매번 철저한 인증과 상호 검증(mTLS)을 수행합니다. 이를 통해 기존 네트워크 경계 기반 보안보다 더욱 정교한 접근 제어가 가능해지며, 워크로드 간 신뢰성을 근본적으로 높여 Lateral Movement 같은 위험 요소를 효과적으로 차단할 수 있습니다.

2. Role & Responsibilities

개발 기간담당 영역(기여도 100%)
2023-12 ~ 2024-02 (2개월)SPIRE/SPIFFE 환경 구성, mTLS 통신 구현 및 검증, SVID 관리 자동화
  • SPIRE/SPIFFE 환경 구성: SPIRE Server와 SPIRE Agent를 Kubernetes 클러스터 내 배포 및 구성

  • mTLS 통신 구현: 획득한 SVID를 이용하여 워크로드 간 상호 인증 및 안전한 gRPC 기반의 mTLS 통신 구축

  • SVID 관리 자동화: CSI Driver를 활용해 Pod 내 경로에 SVID를 자동으로 마운트하여 보안 관리 간소화


3. Problem Statement

Unix Domain Socket 병목현상 문제

기존 SPIRE 환경에서 SPIRE Agent는 Unix Domain Socket(UDS)을 통해 워크로드에 SVID를 전달하였습니다. 이 방식은 다수의 워크로드가 동시에 접근할 때 SocketTimeoutException 및 File Locking으로 인한 병목 현상을 초래하여 서비스 안정성을 저하시킬 가능성이 있습니다.

4. Methods

CSI Driver 도입

CSI Driver Problem Methods SPIFFE CSI Driver Workflow

SPIFFE CSI Driver를 도입하여 각 워크로드가 전용 볼륨을 통해 SVID를 독립적으로 접근하도록 설계했습니다. 이로 인해 UDS 공유로 인한 병목현상을 해결할 수 있었습니다.

SPIFFE CSI Driver 상세 워크플로우:

  • Pod 생성 시 CSI Driver 볼륨을 워크로드에 마운트

  • CSI Driver가 SPIRE Agent의 Workload API에 독립적으로 접근하여 SVID 요청

  • SPIRE Agent가 워크로드 인증 후, CSI Driver에 SVID 제공

  • 제공된 SVID는 Pod 내 전용 볼륨 경로에 저장 및 마운트되어 병목 없이 접근 가능

5. Future Works - Security Enhancement

현재 시스템은 Kubernetes 메타데이터(Label, Namespace, Service Account 등)를 Selector로 활용하여 SVID를 발급합니다. 이 경우, 동일한 Label을 가진 악의적인 워크로드가 배포될 경우 유효한 SVID 발급이 가능합니다. 따라서, 향후 RBAC(Role-Based Access Control) 및 OPA(Open Policy Agent) 등 정책 기반 접근 제어를 추가하여, 워크로드 인증서 발급 시 정책을 적용하고 보안을 강화할 계획입니다.

  • RBAC를 통해 특정 Service Account나 Namespace만 SVID 발급 허용
  • OPA를 활용하여 SVID 발급 요청에 대한 세부 정책 정의 및 적용

6. Used Skills

  • VMWare
  • Kubernetes
  • SPIRE/SPIFFE
  • gRPC