인포그랩
home
회사 소개
home

Reflector, Sealed Secret 구축하기

소개

GitOps 워크플로를 사용하다 보면 다양한 설정 정보를 Git 저장소에 저장하게 됩니다.
이런 환경에서는 다음과 같은 문제들이 발생할 수 있습니다.
민감한 정보를 담고 있는 Kubernetes Secret 관리에 대한 어려움
cert-manager를 이용하여 Certificate에 의해 생성된 Secret을 여러 네임스페이스에 걸쳐 같은 것으로 사용해야 할 때 이를 복사하는 문제
이번 과정에서는 이런 문제점들을 해결할 수 있는 솔루션에 대한 지식을 습득하고 실습하는 과정을 학습합니다.
Sealed Secret을 사용해 Secret 정보를 암호화하여 저장합니다. Reflector를 사용해 네임스페이스 간 Secret 정보를 복사하고 동기화합니다.

Sealed Secrets란?

Sealed Secret은 Kubernetes 환경에서 Secret을 안전하게 관리하고 저장하기 위한 도구입니다. Kubernetes Secret의 데이터는 Base64 인코딩을 사용하여 난독화 합니다. 이러한 메니페스트 파일을 GitOps 워크플로에 통합하면 누구나 복호화할 수 있어 보안에 취약합니다. Sealed Secret을 사용하면 클러스터에 실행 중인 컨트롤러만 해당 Secret을 복호화할 수 있는 구조로 되어 있어 안전하게 Secret을 관리할 수 있습니다.
Sealed Secret의 대표적인 특징 3가지가 있습니다.
단반향 암호화 - Write만 가능하며 컨트롤러에 의해서만 해독할 수 있고 작성자도 원래 Secret을 알 수 없습니다.
키 자동 갱신 - Sealed Secret을 복호화하는 데 사용하는 키를 30일마다 자동 갱신합니다.
Metric 지원 - Prometheus Metric을 지원하여 관련 운영 지표를 확인할 수 있습니다.

Reflector란?

Reflector는 리소스(Secret 및 ConfigMap) 변경사항을 모니터링하고 동일 또는 다른 네임스페이스에 있는 미러 리소스에 변경사항을 반영하도록 설계된 Kubernetes 애드온입니다.

학습 내용

Kubernetes 환경에 Helm 차트를 이용해 Sealed Secrets, Reflector를 배포하는 방법
Sealed Secrets를 사용하여 Kubernetes Secret을 암호화하는 방법
Reflector를 사용하여 Secret 네임스페이스간 복제

아키텍처

사전 준비사항

실습을 시작하기 전에 준비되어야 하는 사항은 다음과 같습니다.
과정을 수행하여 사용할 수 있는 Kubernetes 클러스터가 구성되어 있어야 합니다.