什麼是 Kubernetes 安全性?
Kubernetes 安全性是一組旨在保護 Kubernetes 平台及其編排容器安全的策略、技巧和技術。換句話說,K8s 安全性在於確保容器工作負載安全。
在高水平上,這意味著:
- 了解並保護雲端原生安全的 4C:雲端、叢集、容器和程式碼。Kubernetes 4 Cs 模式將雲端原生安全性分為 4 個不同的層。「K8s 安全性」主要專注於叢集層,但為了真正的端到端安全性,每個層都必須得到充分保護,免受威脅的侵害。
- 遵循 Pod 容器安全性的最佳做法。取得網站安全性原則和安全前後關聯是 K8s 安全性的重要方面。
- 保護 K8s 應用開發界面的計畫。K8s 應用程式介面(應用程式開發介面)是 Kubernetes 如此可擴展且可伸縮的重要組成部分。這也是一種大型攻擊,表面攻擊者如果沒有妥善保護,則可以惡意利用。
Kubernetes 安全的重要性
Kubernetes 可以透過減少人為錯誤的空間並允許以程式設計方式擴展安全配置來幫助減少容器安全問題。然而,Kubernetes 也很複雜、使用廣泛,並且是各種用例中關鍵基礎設施的一部分。此外,正如 CVE-2020-8554 和 CVE-2021-25735 等脆弱性告訴我們的那樣,Kubernetes 原生安全問題可能會發生。
因此,K8s 平台是一種高價值的地面黑客旨在進行妥協。 這意味著在生產中使用容器和 Kubernetes 的企業必須認真對待 K8s 的安全性。
Kubernetes 安全問題
除了特定的 CVE 之外,在 Kubernetes 安全性方面還需要考慮各種安全性問題和權衡。
需要考慮的主要 K8s 安全性問題包括:
- K8s 安全性的人性元素。 雖然技術解決方案是 Kubernetes 安全的重要組成部分,但企業必須考慮人的因素。除了確保只有授權的使用者和工作站執行 K8s 管理工作之外,還可以訓練管理員瞭解安全性最佳做法,並將安全性作為優先順序。
- K8s 和容器組態管理。許多 K8s 預設設定並不是最安全的選項。 管理員需要確保其 Kubernetes 配置在安全性和可用性之間取得適當的平衡。此外,使用 K8s Secrets-而不是純文本配置文件-用於身份驗證令牌、SSH 金鑰和其他權限信息是很重要的。
- K8s 網路安全。對於大多數生產工作負載來說,傳輸中的資料加密應該是一個問題。 此外,應微調網路策略,以限制不必要的東西向流量,並協助實現跨叢集的微分段。
- K8s 儲存空間。 正如傳輸中資料的加密是必須的一樣,靜態資料的加密也是 K8s 安全性的重要方面。企業在決定如何安裝儲存空間以及安裝什麼類型的儲存時必須考慮合規性和資料安全性。
- 修補程式管理。總是會出現新的安全問題和脆弱性。無論它們與您的基礎架構、直接 K8s 平台、容器映像或程式碼中的相依性有關,您都需要修補程式管理計劃來減輕這些問題。
- 合規。PCI-DSS、HIPAA 和 SOX 等法規都具有特定的要求,這些規定可能會直接影響關於 K8 安全性的決定。
Kubernetes Security Best Practices
雖然沒有萬能的 Kubernetes 本機安全解決方案,但有一些 K8s 安全最佳實踐可以幫助您增強整體安全狀況。
- 遵循最小權限原則。一般而言,只允許使用者和容器執行完成其業務功能所需的最少動作數量。 對於 K8s 安全性,這意味著執行諸如在網域清單中設置 AllowPrivilegeEscalation: false,以及利用 AppArmor 核心安全模塊等功能。
- 讓安全成為「每個人的責任」。 「安全是每個人的責任」咒語受歡迎的原因:人為錯誤會產生重大的安全風險。 通過確保所有參與建置、測試和部署應用程序的所有人都認真採取安全性,您可以降低漏洞的風險。
- 將安全性整合到您的管道中。自動化安全 K8s 基礎架構的程序,有助於消除人為錯誤或設定錯誤的空間。 有了 K8 和集裝箱安全,向左移動安全性可以很大程度。
- 限制應用程式開發介面的存取。除了加密所有應用程式開發介面流量之外,您還應該實施存取控制,限制誰可以存取 K8s 應用程式開發介面以及特定使用者在經過驗證後可以執行的操作。例如, Kubernetes 的文件為 K8s 應用程式開發介面強化提供了一個良好的起點。
- 限制 SSH 存取 K8s 節點。通過限制 SSH 訪問 K8s 節點,您可以大大減少整體攻擊表面。 如果使用者需要存取容器,請考慮像 kubectl exec 命令,而不是直接 SSH 存取 K8s 節點。
- 選取符合您使用案例的安全性前後關聯。不同的使用情境會需要不同的 K8s 安全性前後關聯。 確保您的配置使用最安全的上下文。
- 分段您的 K8s 網路。應用程式之間的網路分段降低了單一受感染應用程式導致整個基礎設施癱瘓的可能性。K8s 網路策略以及第三方安全解決方案可以協助您在叢集中實現網路分段。
- 使用資源配額。執行沒有定義資源配額的容器會產生各種不必要的風險(例如 增加對 DoS 攻擊的暴露)。 對 Pod、中央處理器和記憶體實施資源配額有助於限制風險。
- 執行主動掃描和監控。盡快偵測攻擊、未修補的軟體、異常行為和漏洞,可以在限制停留時間並改善整體安全狀態方面有很大的作用。 專為 Kubrentes 安全性打造的工具可協助您在出現問題時改善整體可見性和回應時間。
使用 CloudGuard 增強 Kubernetes 安全性
這些 K8s 安全最佳實踐為保護 Kubernetes 基礎架構提供了一個很好的起點。在雲端實現真正的端到端安全性需要專門建置的解決方案,即使在多雲端環境中,也可以幫助您確保所有工作負載的安全。借助 CloudGuard,您可以做到這一點。CloudGuard 跨各種平台(包括 Kubernetes)提供以下功能。
- 雲端網路安全與威脅防護
- 應用程式安全(包括應用程式開發界面保護)
- 容器和無伺服器平台的保護
- 雲端資安態勢管理
若要了解 CloudGuard 的實際應用,請立即報名參加示範。也歡迎您透過查看我們的K8s 資源庫來詳細了解 CloudGuard 如何協助您保護 Kubernetes 基礎架構。