今天將會介紹 KubeLinter 以及 kubesec 還有 trivy
KubeLinter 會分析 Kubernetes YAML 檔案和 Helm charts,並根據各種最佳實務來檢查它們,重點關注生產環境的準備度和安全性。
KubeLinter 執行合理的預設檢查,旨在為你的 Kubernetes YAML 檔案和 Helm charts 提供有用的資訊。使用它來及早且頻繁地檢查安全配置錯誤和 DevOps 最佳實務。KubeLinter 能識別的一些常見問題包括:以非 root 使用者身分執行容器、強制執行最小權限原則,以及僅在 secrets 中儲存敏感資訊。
KubeLinter 是可設定的,因此你可以啟用和停用檢查項目,並根據組織內想要遵循的政策來建立自訂檢查。當 lint 檢查失敗時,KubeLinter 也會回報解決任何潛在問題的建議,並回傳非零的退出代碼。
會針對 readOnlyRootFilesystem, runAsNonRoot, cpu request, memeory request 這類的設定作檢查
如果是針對 security 的話 建議有以下的配置
securityContext:
readOnlyRootFilesystem: true # 對於檔案只有 readonly 的權限
runAsUser: 1001 # 指定 user
runAsNonRoot: true # 使用非 Root user
安裝
wget https://github.com/controlplaneio/kubesec/releases/download/v2.13.0/kubesec_linux_amd64.tar.gz
tar -xvf kubesec_linux_amd64.tar.gz
mv kubesec /usr/bin/
Trviy 提供多種掃描,可以透過直接掃描image 或者 sbom 以得知漏洞,或者是掃描 terrafrom 確認在 IaC 設計時有沒有問題,今天將會專注於如何查看 image 的 CVE 漏洞。
安裝
# add the trivy-repo
apt-get update
apt-get install wget apt-transport-https gnupg lsb-release -y
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
#Update Repo and Install trivy
apt-get update
apt-get install trivy
trivy image --input test.tar
參考資料
參考資料
https://docs.kubelinter.io/#/
https://kubesec.io/
https://github.com/aquasecurity/trivy