確保Kubernetes控制平臺安全的十個提示
譯文譯者 | 李睿
審校 | 重樓
51CTO讀者成長計劃社群招募,咨詢小助手(微信號:TTalkxiaozhuli)
在調研機構最近發布的一份調查報告中,94%的受訪者表示經歷過與Kubernetes相關的安全事件。錯誤配置是最常見的Kubernetes漏洞,70%的受訪者表示存在這一漏洞。那么,對于網絡犯罪分子具有吸引力的目標是什么?Kubernetes控制平臺。
企業的團隊必須加強節點、主節點、核心組件、API和面向公眾的pod的邊界安全。否則,它們無法保護集群免受現有和潛在漏洞的侵害。以下是可以幫助企業保護Kubernetes控制平臺的10個最佳實踐,并將加快部署過程。
一、保護Kubernetes控制平臺的10個提示
1.使用Kubernetes基于角色的訪問控制(RBAC)
利用基于角色的訪問控制(RBAC)設置可以訪問Kubernetes API的用戶權限。用戶會發現在Kubernetes 1.6及更高版本中默認啟用了RBAC。由于Kubernetes匯集了授權控制器,因此在啟用RBAC時可以禁用以往的基于屬性的訪問控制(ABAC)。
在設置權限時,選擇特定于命名空間的權限而不是集群范圍的權限。即使企業的團隊成員忙于調試,也不要給任何人提供集群管理員的權限。否則,集群的安全性可能會受到影響。
2.實施隔離
不要將Kubernetes節點直接暴露給公共網絡。與其相反,節點的最佳位置是與企業網絡沒有直接連接的獨立網絡。
另一個重要的隔離最佳實踐是分離Kubernetes控制和數據流量。用戶希望它們通過同一管道,因為對數據平臺的開放訪問將導致對控制平臺的開放訪問。
3.避免將對象部署到默認命名空間
在Kubernetes中,命名空間提供了一種隔離集群內資源組的機制。因此,對于許多用戶分布在多個團隊或項目中的環境,它們都是很好的用例。
所有沒有指定名稱空間的對象最終都會使用默認名稱空間。這使得在最關鍵的工作負載附近部署惡意容器更加容易。因此,建議為部署中的對象創建命名空間。
4.避免使用禁止的類型
避免使用被禁止的類型,例如NodePort或LoadBalancer。與其相反,應該通過ClusterIP公開服務。通過這種方式,可以避免某些惡意行為者發現集群基礎設施組件。
5.加密機密數據
在Kubernetes的基本實現中,人們是否知道機密數據在默認情況下是不加密的?但是,如果用戶使用Kubernetes管理的服務(如GKE),機密數據將在靜止時加密。
為什么加密機密數據很重要?任何攔截鍵值存儲的人都可以訪問集群中的所有內容。這包括所有純文本的集群機密數據。因此,加密集群狀態存儲是保護集群免受靜態數據泄露的最佳方式。
6.安全訪問Etcd
對Etcd的訪問等同于根權限。這就是為什么它是一個關鍵的控制平臺組件的原因,也是控制平臺內最重要的安全部件。
確保與Etcd的通信是加密的,并且客戶端使用基于證書的身份驗證。為了限制攻擊面,在理想情況下,只有API服務器有權訪問Etcd。
7.不要在容器中掛載容器運行時套接字
為什么要關心部署是否在容器中安裝了容器運行時(CRI)套接字?docker.sock、container.sock和crio.sock增加了網絡攻擊者獲得主機和相應容器運行時的根訪問權限的機會。要避免這種情況,需要刪除/var/run/<CRI>.sock hostPath volume。
8.在沒有只讀根文件系統的情況下運行容器?三思而后行
容器是否在沒有只讀根文件系統的情況下運行?使用只讀文件系統可防止惡意二進制文件寫入系統或系統接管。通過在Pod securityContext定義中將readOnlyRootFilesystem設置為true,可以確保容器僅使用只讀文件系統。
9.確保安全然后訪問Kubernetes控制平臺
要獲得額外的安全功能層,例如多因素身份驗證,可以獲得第三方身份驗證提供商的幫助。為了完全保護Kubernetes控制平臺訪問,避免在API服務器級別管理用戶。與其相反,使用云計算提供商提供的解決方案,例如AWS身份和訪問管理(IAM)。如果無法獲得云計算供應商IAM,可以選擇OpenID Connect(OIDC)以及熟悉的單點登錄(SSO)提供商。
10.創建滾動更新策略
為了確保EKS安全,需要制定滾動更新策略。而滾動更新允許部署更新,并最小化應用程序停機時間,這要歸功于增量pod更新。
另一點是在運行時運行漏洞掃描。用戶的集群面臨供應鏈攻擊的風險。要處理它們,需要了解真正進入集群的是什么,即使用戶在持續集成(CI)/持續交付(CD)期間掃描了所有部署構件。基于代理的安全解決方案在這里運行得很好,甚至比“無代理”還更好。
二、使用工具實現Kubernetes控制點安全
隨著Kubernetes生態系統的發展,其安全問題也在不斷發展。不幸的是,跟上它們的變化是很耗時的,一旦漏洞累積起來,企業的安全人員就不得不同時對許多項目進行優先級排序。
Kubernetes安全工具根據行業最佳實踐、Kubernetes建議和CIS Kubernetes基準檢查集群,然后自動對它們進行優先級排序,以便使用戶從一開始就處于正確的軌道上。
用戶可以根據配置和安全最佳實踐掃描Kubernetes集群,并了解如何優化安全。
文章鏈接:https://dzone.com/articles/kubernetes-control-plane-10-tips-for-airtight-k8s