티스토리 뷰

Sealed-secrets는 gitops를 사용한다면 보안적으로 필수적?이라고 생각하는 요소다. Private repo여도 비밀번호 같은 정보가 base64로 아무나 디코딩 가능한 형태의 Secret manifest 형태로 올라간다면 보안적으로 불완전한 요소일 수 있다. 여기서 Sealed-secrets을 사용하면 더 안전히 gitops 형태로 이끌어 갈 수 있다고 생각한다.

- 관련되어 개념을 모른다면 커피고래님의 블로그 관련 글이 설명이 잘 되어있다.

 

배포하기 이전에 로컬에서 테스트를 자주 해야하는 상황이 오는데, 맨날 하는 것이 아니다보니 할 때마다 사소한 오류들이 생겨서 그냥 정리해둔다.

 

준비사항

# repo 추가
helm install sealed-secrets sealed-secrets/sealed-secrets

# kubeseal 설치
brew install kubeseal

 

설치 및 적용

# SealedSecret 설치
helm install sealed-secrets sealed-secrets/sealed-secrets -n kube-system

# input-secret
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
  namespace: default
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

# input-secret 생성 및 적용
kubectl apply -f input-secret.yaml

# kubeseal 사용 
cat input-secret.yaml | kubeseal --controller-name=sealed-secrets -oyaml > output-sealed-secret.yaml

 

유의사항

  • sealed secret 설치 시, kube-system namespace에 설치해야 한다. 여러 커맨드에서 기본적으로 kube-system namespace를 사용하기 때문.
  • --controller-name=sealed-secrets 를 명시하지 않으면 제대로 동작하지 않는다.
    • default로 controller-name이 sealed-secrets-controller 로 적용되어있어 찾지 못해 오류가 난다.
    • error: cannot get sealed secret service: services "sealed-secrets-controller" not found
320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함