Skip to main content
雲端安全

Kubernetes 安全架構有多安全?

Kubernetes 安全架構整合了網路政策、機密管理和基於身分的存取控制,以保護您的容器化應用程式。了解如何在雲端原生環境中確保強大的安全性與合規性。

作者 SentinelOne
Kubernetes 安全架構有多安全?

Kubernetes 是一個開源的容器協調平台,用於擴展與自動化容器部署。它最初是為了在正式環境中管理容器化工作負載而開發,並協助使用者定義應用程式資源邊界。虛擬化是一種 Kubernetes Security Architecture 實務,可在實體伺服器上實現資源的適當利用並提升穩定性。Kubernetes 透過加入虛擬化來提升硬體效能並降低營運成本。每個虛擬機器都以其自身的一組元件執行,並具備指定的作業系統。

Kubernetes 安全架構部署具備敏捷性,可促進持續開發與整合,並提升容器映像建置與部署的可靠性。此平台可促進映像不可變性、監控應用程式健康狀態與效能,並簡化作業系統發行版的可攜性。然而,使用 Kubernetes 安全架構的一項缺點是,其預設安全性仍有不足。使用者在執行分散式系統時,可能會面臨作業停機或延遲,且在負載平衡、組態管理與自動化部署方面也存在安全問題。

Kubernetes 安全架構提供靈活性與可觀測性,但不會限制應用程式,也不會規定記錄、稽核與監控方式。惡意威脅行為者可能利用弱點,而供應鏈風險可能在整個容器建置週期中造成問題。Kubernetes 架構中的多個元件都需要受到保護,例如工作節點、容器化應用程式與控制平面。內部威脅的可能性也很高,而具有惡意意圖的 Kubernetes 管理員可能濫用特殊權限、洩露敏感資訊,或導致資料外洩。

本指南說明 Kubernetes 安全架構的主要挑戰。內容涵蓋如何設定並保護這些叢集,以修補威脅並防止常見的錯誤設定。讓我們開始吧。

什麼是 Kubernetes 安全架構?

Kubernetes 安全架構 使用叢集、控制平面,以及一個或多個稱為工作節點的虛擬機器(或實體伺服器)。眾所周知,工作節點會託管 Pod,而 Pod 內含一個或多個容器。

Kubernetes 容器是執行階段環境,包含軟體套件並儲存其所有相依性。容器映像包含可執行程式碼以及用於填入容器環境的內容。

叢集決策由控制平面負責。它會排程容器執行、偵測故障,並啟動新的 Pod。控制平面的關鍵元件包括 controller manager、Kubernetes application programming interface (API) server、scheduler,以及 cloud controller manager。

Kubernetes 工作節點也會託管 Kubelet 和 Kube-proxy,這兩項服務可實現容器協調。它也會執行容器引擎,而 CSP Kubernetes 服務則會託管叢集。由於預設的 CSP 設定並不安全,組織必須管理 Kubernetes 的各種服務面向,例如授權與驗證。

在設計 Kubernetes 安全架構時,組織必須了解自身責任,並知道如何維護 Kubernetes 叢集。

如何保護 Kubernetes 安全架構?

有許多方法可以保護 Kubernetes 安全架構。第一步是預設防止以 root 身分執行。使用者可以執行非 root 容器,或使用無 root 容器引擎,以降低容器遭入侵的可能性。他們也應測試 Kubernetes 應用程式,並將其設計為以非 root 使用者身分執行。在建置階段整合非 root 執行可提升品質保證,並確保 Kubernetes 應用程式在沒有 root 權限的情況下順利執行。

對初學者而言,為大規模應用程式設定個別叢集要簡單得多。使用商業或受管 Kubernetes 服務的個人,可以使用 K8s Namespaces 最佳化資源利用率,並運用多租戶支援。

以下是改善 Kubernetes 安全架構的最佳安全建議,適合初學者參考:

1. 使用不可變容器檔案系統

惡意行為者能夠取得不受限制的執行權限、下載指令碼,並修改容器內的應用程式。使用者可透過在特定目錄掛載次要讀寫檔案系統,以及使用不可變容器檔案系統來防止此類情況。 

2. 建立安全的容器映像

Kubernetes 容器映像掃描可偵測弱點、防止惡意程式碼注入,並確保安全部署。Kubernetes 容器映像掃描可識別過時的程式庫、保護連接埠,並防止已知的錯誤設定。容器映像掃描是 Kubernetes 安全架構中不可或缺的一環,並可提供有效的威脅修補。Kubernetes 准入控制器可在容器映像違反組織的安全政策時,自動封鎖部署。同樣重要的是,應從受信任的儲存庫建置與取得映像,並驗證發布者的信譽。使用者在 Kubernetes 叢集中應僅執行經過數位簽章的映像。

3. 實作 Kubernetes 容器強化

Kubernetes 容器強化可大幅限制攻擊面的範圍、防止資料外洩,並保護應用程式。一般而言,有三種方法——以 hypervisor 為後盾的容器化、基於核心的解決方案,以及應用程式沙箱。

seccomp 工具可用於稽核記錄與主動式威脅偵測。許多容器引擎解決方案允許使用者在主機核心與容器化應用程式之間新增一層隔離。隔離邊界會強制應用程式在虛擬沙箱內運作,並保護主機作業系統免受惡意入侵。容器引擎可設定為強制執行虛擬化,並提供比傳統容器隔離解決方案更好的保護。

4. 網路分離與強化

叢集網路用於改善容器之間的通訊。強制執行加密與資源隔離可防止在網路中的橫向移動。使用者可以使用網路政策來隔離 Kubernetes 資源並保護控制平面。建議對傳輸流量與靜態敏感資料(包括 secrets)進行加密,並套用防火牆規則。Kubernetes 命名空間可在團隊、使用者與應用程式之間分割叢集資源。命名空間預設不會隔離,但使用者可以使用 授權來指定權限RBAC 和網路政策。

Pod IP 位址可能會變更,而應用程式不能依賴 Pod 擁有靜態 IP 位址。將 Kubernetes 服務與 Kubernetes 安全架構搭配使用可解決此問題。它可以為不同的 Pod 指派多個唯一 IP 位址,並使用標籤進行設定。只要服務仍在使用中,這些位址就不會變更。Kubernetes 網路政策可控制輸入與輸出流量。 

另外兩項用於設計強大網路政策的 Kubernetes 安全架構建議包括——使用支援 NetworkPolicy API 的 CNI 外掛程式,以及使用 namespaceSelector 和 podSelector 為選定的 Pod 建立準則。

5. 保護 Kubernetes 主機

使用者可以透過多種方式部署 Kubernetes:內部部署、裸機,以及透過公有雲建置。Kubernetes 容器具有高度可攜性;客戶可以在不同安裝環境之間切換並遷移工作負載。高度的客製化也意味著會引入額外的安全性弱點。解決此問題的一種方式是強化底層主機並安裝最新版本的作業系統。實作組態管理系統、修補程式管理、防火牆,並根據指定的資料中心環境套用相關安全措施,是至關重要的。

執行最新版本的 Kubernetes 可降低最主要的潛在威脅。它會套用常見的錯誤修正,而讓應用程式保持最新可避免不必要的複雜情況。滾動更新在開發人員之間非常受歡迎,而節點集區移轉則能以最少的停機時間或中斷完成更新。

6. 整合 Kubernetes 安全工具

Kubernetes 安全 工具,例如 Next Generation Firewalls (NGFW) 和 Web 存取控制閘道,應與現有的 Kubernetes 叢集和安全工具組整合。實現此目標的一個好方法,是將工作負載使用的 TCP/UDP 連接埠和 IP 位址納入周邊安全工具中。這將使使用者能夠識別並保護 Kubernetes 資產。

限制與 Kubernetes 節點的網路連線,以及使用雲端供應商安全群組,也可符合 Kubernetes 安全架構管理實務。

7. 自動化合規

最佳的執行階段安全性可透過蒐集資料並自動產生合規報告來確保。Kubernetes 合規性必須遵循最新的產業基準,例如 HIPAA、PCI-DSS、GDPR、NIST 和 SOC2。以自動化與持續性合規為目標至關重要。如果 pod 未通過合規檢查,叢集應自動更新容器映像檔,或將其關閉,直到問題獲得修正為止。使用者應加密傳輸中的資料,這可透過為 Kubernetes 工作負載啟用 TLS 加密來達成。另一個很好的選擇是啟用雙向 TLS、使用服務網格,或使用 SentinelOne 等工具。

8. 保護對 Kubernetes API 的存取

Kubernetes 叢集作業的大部分都發生在 Kube-apiserver 中。Kube 控制公用程式工具可用於控制對 API 的存取,並作為第一道防線。Kubelet 可以為 Pod 指派服務品質(QoS)類別,並在需要時協助其排程及後續驅逐。Kubelet 可以協助使用者做出更明智的決策,而 DevOps 團隊可以確保容器獲得足夠的資源以正常運作。所有容器都必須毫無例外地設定 CPU 和記憶體限制。

SentinelOne 擁有全面的雲端原生應用程式保護平台 (CNAPP) 內建 Kubernetes Security Posture Management (KSPM) 解決方案的工具。它可套用細緻的安全性原則、限制工作負載與第三方應用程式之間的通訊,並限制對 API 的存取。此工具使用機器學習與人工智慧來偵測及緩解進階持續性威脅,甚至還內建 Offensive Security Engine,可透過以規則為基礎的方法來強制執行安全性並監控威脅。為 Kubernetes 主機、VM 和容器部署可擴充、統一且獨特的微分段模型,可在多叢集、多雲與混合式部署環境中提供迫切需要的 Kubernetes 安全性。

Callout Background Image Gradient

See SentinelOne in Action

Discover how AI-powered cloud security can protect your organization in a one-on-one demo with a SentinelOne product expert.

結論

企業正積極採用 Kubernetes 等容器協調平台,並逐漸轉向保護基礎架構,以及運用容器化工作負載與應用程式。Kubernetes 提供全面的安全功能與設定,但預設並不安全,且需要進行設定。容器可以被妥善執行,而威脅必須在升級之前加以修補。這一切始於設計實用的 Kubernetes 安全架構。組織可使用各種工具開始著手,市場上也有許多開源解決方案可供選擇。 

它們正在實現持續可視性、提升可觀測性,並確保容器以盡可能安全且受保護的方式執行。Kubernetes 安全工具可監控建置流程並揭露隱藏的弱點,從而協助組織維持防護。

Kubernetes 安全架構常見問題

Kubernetes 安全架構是用於保護 Kubernetes 叢集的設計與控制集合。其重點在於保護控制平面、節點、工作負載和網路,以防止未經授權的存取與攻擊。

它包含分層防禦,例如驗證、授權、網路政策和機密管理,並以結構化方式保護容器協調環境的每個部分。

Kubernetes 網路安全使用政策與分段來控制 Pod 與外部用戶端之間的流量。網路政策定義哪些 Pod 或 IP 範圍可以通訊。此架構通常包含元件之間的加密通訊,以及用於限制存取的防火牆。

此設定可限制攻擊者的橫向移動,並保護叢集內的敏感服務。

安全的 Kubernetes 設定包括用於權限管理的角色型存取控制 (RBAC)、用於加密 API 流量的 TLS、用於 pod 區隔的網路政策、用於強制執行容器安全性的 pod 安全政策或准入控制器、機密加密、稽核記錄,以及定期弱點掃描。這些層面共同運作,以降低風險並維持叢集完整性。

Kubernetes 支援各種驗證方法,例如憑證、權杖,以及與身分識別提供者 (OIDC, LDAP) 的整合。完成驗證後,請求會經過授權檢查,主要使用 RBAC,透過根據已定義的角色與政策授予存取權限來強制執行最小權限原則。這可確保只有受信任的使用者與元件能執行允許的動作。

範例包括強制執行 RBAC 以限制使用者動作、使用網路政策隔離含有敏感資料的 pod、啟用稽核記錄以追蹤叢集事件、加密儲存在 etcd 中的機密、部署准入控制器以封鎖不安全的組態,以及以有限權限執行容器。結合這些做法可從多個面向強化叢集安全性。

深入了解 雲端安全

Decorative background gradient

您的雲端安全——30 分鐘內完成全面評估。

與 SentinelOne 專家會面,評估您在多雲環境中的雲端安全態勢,找出雲端資產、錯誤設定、秘密掃描,並透過 Verified Exploit Paths™ 排定風險優先順序。
Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text