알고보면 쓸데있는 신비한 잡학IT노트

kubernetes(k8s) Secret

남차장 2023. 3. 9. 16:08

Kubernetes 를 사용할 때 암호와 같은 민감한 정보들을 암호화하지 않고 소스에 삽입하여 운영한다면

보안상 큰 약점이 되어 운영이 되어질 수 있습니다.

이를 보완하기 위하여 secret 을 사용하여 인코딩된 데이터로 보안을 유지하여 운영 할 수있습니다.

기본적으로 base64 인코딩 됩니다.

 

아래는 예제 샘플입니다.

 

Secret 생성 Command

kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123

 

Pod yaml 에 추가된 secret 항목 삽입 -> envFrom \ -secretRef: \ name: db-secret 항목 추가

spec:
  containers:
  - image: kodekloud/simple-webapp-mysql
    imagePullPolicy: Always
    name: webapp
    envFrom:
      - secretRef:
          name: db-secret
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File

 

base64 secret decode

echo "encodingdata"| base64 --decode