쿠버네티스 Secret

Chori·2025년 11월 16일
post-thumbnail

초보를 위한 쿠버네티스 안내서를 수강하며 정리한 내용입니다.

개념

  • ConfigMap과 유사하지만 보안 정보를 관리하기 위해 Secret을 별도로 제공
  • 데이터가 base64로 저장된다는 것이 ConfigMap과의 차이점
  • 주의사항으로 Secret이 보안 정보를 저장하기 위해 만들어졌지만 실제로 데이터가 암호화되지는 않음, etcd에 접근이 가능하다면 누구나 저장된 Secret을 확인할 수 있기 때문에 별도의 암호화 솔루션을 쓰는 것이 좋음

Secret 만들기

  • 사용자명이 작성된 텍스트 파일 생성
admin
  • 비밀번호가 작성된 텍스트 파일 생성
1q2w3e4r
  • Secret을 만들고 확인
# Secret 생성
kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt

# Secret 상세 조회
kubectl describe secret/db-user-pass

# -o yaml로 상세 조회
kubectl describe secret/db-user-pass -o yaml

# 저장된 데이터를 base64 decode
echo 'MXEydzNlNHIK' | base64 --decode

Secret을 환경변수로 사용

  • 설정한 Secret을 환경변수로 연결
apiVersion: v1
kind: Pod
metadata:
  name: alpine-env
spec:
  containers:
    - name: alpine
      image: alpine
      command: ["sleep"]
      args: ["10000"]
      env:
        - name: DB_USERNAME
          valueFrom:
            secretKeyRef:
              name: db-user-pass
              key: username.txt
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: db-user-pass
              key: password.txt
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글