컨테이너/K8s 진단 - Secret 평문 노출
점검 결과
| etcd 암호화 | 상태 | 민감 데이터 | 평가 |
|---|
| Secret 암호화 | 비활성화 | 평문 | 위험! |
| ConfigMap (기밀) | 비활성화 | 평문 | 위험! |
| Secret (암호화됨) | 활성화 | 암호화 | 안전 |
평문 Secret 분석
# Kubernetes Secret 생성
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4=
password: cGFzc3dvcmQxMjM=
# base64로 인코딩 (암호화 아님!)
echo -n "admin" | base64
YWRtaW4=
# 디코딩 (누구나 가능)
echo "YWRtaW4=" | base64 -d
admin
[위험한 상황]
1. etcd 데이터베이스가 암호화되지 않음
2. RBAC으로 접근 제어만 함
3. etcd 백업 파일이 평문
4. etcd 접근 시 모든 Secret 평문으로 노출
# etcd 접근
kubectl exec -it etcd-server -- etcdctl get /registry/secrets/default/db-credentials
{...평문 데이터...}
[민감한 정보 노출]
- 데이터베이스 비밀번호
- API 토큰
- SSH 키
- 민감한 설정 정보
조치 가이드
- etcd 암호화 활성화: kube-apiserver 플래그 설정
- Secret 암호화 키 관리: KMS 또는 Vault
- etcd 백업 암호화: 저장소 암호화
- 접근 제어: RBAC으로 Secret 접근 최소화
- 감시: 모든 Secret 접근 로깅