Search

KubeSeal

동작 원리

사용자가 SealedSecret에서 제공하는 Public key(인증서)를 이용하여 Secret을 암호화하면 SealedSecret Controller가 알아서 자동으로 쿠버네티스 Secret으로 복호화 해줍니다.
1.
사용자가 미리 SealedSecret의 인증서를 이용하여 Secret을 암호화합니다. (SealedSecret 생성)
2.
생성한 SealedSecret을 외부 git 저장소에 업로드합니다. 아무나 볼 순 있겠지만 복호화하진 못합니다.
3.
GitOps Operator에 의해 SealedSecret이 쿠버네티스 클러스터로 배포됩니다.
4.
SealedSecret Controller에 의해 SealedSecret이 K8s Secret으로 복호화됩니다. 그 이후에는 기존과 동일하게 Secret을 사용합니다.

Install

Client Side

wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.27.1/kubeseal-0.27.1-linux-amd64.tar.gz tar -xvzf kubeseal-0.27.1-linux-amd64.tar.gz kubeseal sudo install -m 755 kubeseal /usr/local/bin/kubeseal
Shell
복사

Server Side

kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.27.1/controller.yaml
Shell
복사

사용해보기

Secret Create

kubectl create secret generic mysecret --from-literal hello=world --dry-run=client -oyaml > mysecret.yaml
Shell
복사

Sealed Secret Create

cat mysecret.yaml | kubeseal -oyaml > mysealed-secret.yaml
Shell
복사

Check

# 수동배포 보통은 GitOps로 배포됨 kubectl apply -f mysealed-secret.yaml kubectl get sealedsecret mysecret NAME AGE mysecret 11s kubectl get secret mysecret NAME TYPE DATA AGE mysecret Opaque 1 23s
Shell
복사