Secret

zuckerfrei·2024년 1월 3일
0

Kubernetes

목록 보기
31/63

비밀번호 같이 숨겨야 하는 데이터는 secret 으로 관리함

1. create secret

configmap처럼 2가지 방법으로 생성

imperative

kubectl create secret generic {이름} --from-literal={key}={value}

kubectl create secret generic {이름} --from-file={file경로}

declarative

kubectl craete -f {파일}


configmap과 다른 점은 secret의 데이터는 안전하게 보관해야 하므로 반드시 인코딩된 형식으로 데이터를 저장한다는 것

apiVersion: v1
kind: Secret
metadata:
  name: app-secret
data:
  DB_Host: "sjcvms=="
  DB_User: "dkfjl=="
  DB_Password: "1sdekj3=="

base64 인코딩 데이터 생성 방법

echo -n '{데이터}' | base64

base64 디코딩 방법

echo -n '{데이터}' | base64 --decode
echo -n 'bXlzcWw=' | base64 --decode

secret 확인방법

kubectl get secret 
kubectl describe secret

value까지 확인하는 방법

kubectl get secret {이름} -o yaml 

2. inject into pod

configmap와 사용법은 동일함


주의사항

  • secret은 암호화되어있지 않음. 그래서 github에 올릴때는 주의 할 것

  • secret은 etcd에 암호화되어 저장되지 않음 (기본적으로 etcd 어떤 데이터도 암호화되지 않음, EncryptionConfiguration을 사용하면 암호화하여 저장함. 다음 강의에서 실습함)

  • 클러스터에 접근 가능한 유저는 etcd, secret에도 접근이 가능하므로 관리자 권한급의 유저들만 secret에 접근할 수 있도록 설정해야함

  • 현업에서는 일반적으로 서드파티 저장소를 사용하여 시크릿을 저장하고 관리함

profile
무설탕 음료를 좋아합니다

0개의 댓글