Kubernetes는 클러스터 상태, 어플리케이션 구성 그리고 secret을 포함한 다양한 데이터를 저장합니다.
Kubernetes는 클러스터 데이터를 저장 중에 암호화 할 수 있는 기능을 지원합니다.
이번 실습에서는 Kubernetes Secret을 암호화 하기 위한 암호화 키와 암호화 설정파일을 생성합니다.
해당 작업을 진행하는 이유는 Kubernetes Secret 리소스 생성 시 Kubernetes 저장소인 ETCD
에 정보를 저장하는데 이땐 평문으로 저장됩니다.
ETCD
에 Kubernetes의 Secret 리소스를 조회하면 평문으로 조회되니, 이를 방지하기 위해 ETCD
저장 시 암호화해서 저장 하도록 합니다.
암호화 키를 생성합니다.
export ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)
The Encryption Config File
encryption-config.yaml
암호화 설정파일을 생성합니다.
mkdir /k8s-hardway/configs
cat > /k8s-hardway/configs/encryption-config.yaml <<EOF
kind: EncryptionConfig
apiVersion: v1
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: ${ENCRYPTION_KEY}
- identity: {}
EOF
encryption-config.yaml
파일을 controlplane-1
서버로 복사합니다.
scp /k8s-hardway/configs/encryption-config.yaml root@controlplane-1:~/