本文將介紹如何存放資訊在 Kubernetes 當中,並且將機密資訊加密,提升安全性
Secrets 協助開發者將一些敏感資訊,像是資料庫帳密、訪問其他 server 的 Access Token、 SSH Key 等,用非明碼的方式(opaque)存放在 Kubernetes 中
常用的方法有幾種
image pull
下載到Kubernetes Cluster 中,讓其他Pods 存取首先要先將要使用的變數以 base64 編碼,在 Linux 系統中,可以直接在 Terminal 輸入以下指令
# Encode
echo -n 'test-secret-key' | base64
output
--------
dGVzdC1zZWNyZXQta2V5
# Decode
echo -n 'dGVzdC1zZWNyZXQta2V5' | base64 -d
output
--------
test-secret-key
接著放入 Secret YAML file 即完成
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
SECRET_KEY: dGVzdC1zZWNyZXQta2V5
與 Secrets 相似,將配置環境儲存於環境變數中,不同的是如果存放的是機密資訊,將有可能被其他人得知,因此適合存放非機密的部屬與配置資訊
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
data:
DEBUG: "True" # 變數寫在以下區域
DEBUG_TRACE: "True"
如何在 Pod 使用 Sercrets 與 Config map 當作環境變數,實際做法請參考 應用程式啟起來-Deployment 一文