지니데비 기록 자세히보기

데브옵스/Orchestration

[Kubernetes] 28. Secret

지니데비 2024. 12. 5. 16:41
728x90


쿠버네티스의 Secret은 암호, 토큰, 키 같은 민감한 데이터를 관리하는 컴포넌트이다. key-value로 저장되는 것이 ConfigMap과 유사하지만, value값이 base64 인코딩되어 저장되는 점은 다르다. (암호화 X)

Secret 생성
# 명령어로 생성
kubectl create secret generic [secret name] --from-literal=[key]=[value]
kubectl create secret generic [secret name] --from-file=[file path]
kubectl create secret generic \
    app-secret --from-literal=DB_Host=mysql
               --from-literal=DB_User=root
               --from-literal=DB_Password=password

# yaml로 생성
apiVersion: v1
kind: Secret
metadata:
  name: [secret name]
data:
  [key]: [value(encoded)]
  [key]: [value(encoded)]
  [key]: [value(encoded)]

echo -n 'value' | base64
echo -n 'value(encoded)' | base64 --decode

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  username: YWRtaW4=  # 'admin'의 Base64 인코딩 값
  password: c2VjcmV0MTIz  # 'secret123'의 Base64 인코딩 값
  
echo -n 'admin' | base64  # 결과: YWRtaW4=
echo -n 'secret123' | base64  # 결과: c2VjcmV0MTIz

 

※ Secret 활용 시 주의사항

1. 값이 Base64 인코딩만 되어 있는 것이지 암호화 된 것이 아니므로 절대 공개해서는 안 된다. (Pod 안에서만 사용하여 컨테이너 외부에 데이터를 노출하지 않도록 한다.)

2. RBAC 제한 설정하여 Secret에 접근할 수 있는 권한을 엄격히 제어한다.

728x90
반응형

'데브옵스 > Orchestration' 카테고리의 다른 글

[Kubernetes] 30. Multi-Container  (0) 2024.12.05
[Kubernetes] 29. Encrypt Secret  (0) 2024.12.05
[Kubernetes] CKA 취득 성공  (3) 2024.11.28
[Kubernetes] 27. ConfigMap  (0) 2024.11.21
[Kubernetes] 26. Environment Variables  (0) 2024.11.21