設定檔適用性:等級 2
Kubernetes 支援將秘密掛載為資料防護卷或環境變數。請盡量減少使用環境變數秘密。
應用程式代碼登出其環境是相當常見的(尤其是在發生錯誤時)。這將包括以環境變數形式傳遞的任何秘密值,因此秘密可能會輕易暴露給任何有權訪問日誌的用戶或實體。
注意預設情況下,未定義密碼。
|
影響
需要修改期望以環境變數形式讀取機密的應用程式代碼。
稽核
執行以下命令以查找使用從秘密定義的環境變數的物件引用。
echo -e "NAMESPACE\tPOD\tCONTAINER"
kubectl get pods -A -o jsonpath='{range .items[?(@.spec.containers[*].env[*].valueFrom.secretKeyRef)]}{.metadata.name space}{"\t"}{.metadata.name}{"\t"}{.spec.containers[*].name}{"\n"}{end}'
範例輸出:
NAMESPACE POD CONTAINER default my-app-588f67fd8d-vqc6k my-app-container prod api-6d8b4f79cc-def34 api-container
補救
如果可能,請重寫應用程式代碼以從掛載的秘密文件中讀取秘密,而不是從環境變數中讀取。
