如何使用Polaris驗(yàn)證你的Kubernetes集群是否遵循了最佳安全實(shí)踐
關(guān)于Polaris
Polaris是一款針對(duì)Kubernetes的開(kāi)源安全策略引擎,可以幫助廣大研究人員通過(guò)驗(yàn)證和修復(fù)Kubernetes的資源配置,來(lái)審查Kubernetes集群是否遵循了最佳安全實(shí)踐。
當(dāng)前版本的Polaris包含了30多種內(nèi)置的配置策略,并且能夠使用JSON Schema構(gòu)建自定義策略。如果你通過(guò)命令行或Webhook運(yùn)行Polaris的話(huà),Polaris則可以根據(jù)策略標(biāo)準(zhǔn)自動(dòng)修復(fù)問(wèn)題。
工具特性
Polaris支持下列三種運(yùn)行模式:
1、儀表盤(pán)模式:根據(jù)“策略即代碼”來(lái)驗(yàn)證Kubernetes資源安全態(tài)勢(shì);
2、準(zhǔn)入控制器模式:自動(dòng)拒絕或修改不符合組織策略的工作負(fù)載;
3、命令行工具:將策略作為代碼納入CI/CD流程,以測(cè)試本地YAML文件;
Polaris儀表盤(pán)
Polaris儀表盤(pán)可以使用kubectl或Helm安裝在集群上。它也可以在本地運(yùn)行,并使用存儲(chǔ)在KUBECONFIG中的憑據(jù)連接到集群。
需要注意的是,儀表盤(pán)是了解集群或“代碼基礎(chǔ)結(jié)構(gòu)”中哪些工作負(fù)載不符合最佳實(shí)踐的好方法。
工具安裝
Helm安裝
helm repo add fairwinds-stable https://charts.fairwinds.com/stable
helm upgrade --install polaris fairwinds-stable/polaris --namespace polaris --create-namespace
kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80
本地代碼安裝
首先,你需要一個(gè)有效的KUBECONFIG來(lái)設(shè)置儀表盤(pán)并連接到你的集群。
廣大研究人員可以直接訪問(wèn)該項(xiàng)目的【Releases頁(yè)面】來(lái)下載最新的代碼發(fā)布版本,或使用【Homebrew】安裝:
brew tap reactiveops/tap
brew install reactiveops/tap/polaris
polaris dashboard --port 8080
我們還可以將儀表盤(pán)指向本地文件系統(tǒng):
polaris dashboard --port 8080 --audit-path=./deploy/
本地Docker容器安裝
docker run -d -p8080:8080 -v ~/.kube/config:/opt/app/config:ro quay.io/fairwinds/polaris:1.2 polaris dashboard --kubeconfig /opt/app/config
工具使用
Polaris儀表板可以簡(jiǎn)單直觀地了解Kubernetes工作負(fù)載的當(dāng)前狀態(tài),以及可以改進(jìn)的路線(xiàn)圖。儀表板提供了集群范圍的概述,以及按類(lèi)別、命名空間和工作負(fù)載劃分結(jié)果:
Polaris的默認(rèn)標(biāo)準(zhǔn)是非常高的,所以如果你的分?jǐn)?shù)低于你的預(yù)期,請(qǐng)不要感到驚訝。Polaris的一個(gè)關(guān)鍵目標(biāo)是設(shè)定一個(gè)高標(biāo)準(zhǔn),并在默認(rèn)情況下實(shí)現(xiàn)出色的配置。如果我們包含的默認(rèn)值過(guò)于嚴(yán)格,那么很容易將配置作為部署配置的一部分進(jìn)行調(diào)整,以更好地適應(yīng)你的工作負(fù)載。
許可證協(xié)議
本項(xiàng)目的開(kāi)發(fā)與發(fā)布遵循Apache-2.0開(kāi)源許可證協(xié)議。
項(xiàng)目地址
Polaris:【GitHub傳送門(mén)】
參考資料
https://polaris.docs.fairwinds.com/
https://github.com/FairwindsOps/Goldilocks
https://github.com/FairwindsOps/Pluto
https://github.com/FairwindsOps/Nova
https://github.com/FairwindsOps/rbac-manager
本文作者:Alpha_h4ck, 轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM