本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

為你的叢集提供雲原生安全

在過去幾年中,一個專注於安全的小社群一直在努力加深我們對安全的理解,鑑於雲原生基礎設施的不斷演進和相應的迭代部署實踐。為了與社群分享這些知識,由Emily Fox領導的 CNCF SIG 安全(一個向 CNCF TOC 彙報並與 Kubernetes SIG 安全 友好合作的組織)成員,共同撰寫了一份白皮書,概述了整體雲原生安全關注點和最佳實踐。經過來自全球35名成員的1200多條評論、修改和討論,我們自豪地分享 雲原生安全白皮書 v1.0,它為企業、金融和醫療行業、學術界、政府和非營利組織的安全領導者提供了必讀內容。

該白皮書試圖**不**專注於任何特定的 雲原生專案。相反,其目的是在雲原生應用程式生命週期的四個邏輯階段(*開發、分發、部署和執行時*)中建模和注入安全性。

Cloud native application lifecycle phases

Kubernetes 原生安全控制

當使用 Kubernetes 作為工作負載編排器時,本版白皮書建議的一些安全控制包括:

雲原生補充安全控制

Kubernetes 直接參與**部署**階段,並在較小程度上參與**執行時**階段。確保工件安全地**開發**和**分發**對於使 Kubernetes 中的工作負載“預設安全”執行是必要的。在雲原生應用程式生命週期的所有階段中,Kubernetes 編排的工作負載存在多種補充安全控制,其中包括但不限於:

  • 開發
    • 映象簽名和驗證
    • 映象漏洞掃描器
  • 分發
    • 部署前檢查以檢測過度許可權
    • 啟用可觀測性和日誌記錄
  • 部署
    • 使用服務網格進行工作負載認證和授權
    • 透過 網路外掛 對工作負載間通訊強制執行“預設拒絕”網路策略
  • 執行時
    • 為工作負載部署安全監控代理
    • 使用 SELinux、AppArmor 等隔離在同一節點上執行的應用程式
    • 根據公認的安全基線掃描節點、工作負載和編排器的配置

先理解,後保障

雲原生方式,包括容器,為其使用者提供了巨大的安全優勢:不變性、模組化、更快的升級和整個環境的一致狀態。認識到“做事方式”的這種根本性變化,促使我們用雲原生的視角來看待安全。對所有白皮書作者來說顯而易見的一點是,如果你不瞭解手頭的工具、模式和框架(除了瞭解自己的關鍵資產),就很難在雲原生生態系統中做出更明智的決策,決定如何以及保障什麼。因此,對於所有希望成為運營、產品開發和合規部門的朋友的合作伙伴而非把關人的安全從業者,讓我們努力“**學得更多,以便更好地保障安全**”。

我們建議遵循以下**7步 R.U.N.T.I.M.E. 路徑**來啟動雲原生安全:

  1. Read(閱讀)白皮書及其中的任何連結材料
  2. Understand(理解)您環境的挑戰和限制
  3. Note(注意)適用於您環境的內容和控制
  4. Talk(討論)與您的同行討論您的觀察
  5. Involve(參與)您的領導層並尋求幫助
  6. Make(制定)基於現有和缺失安全控制的風險配置檔案
  7. Expend(投入)時間和金錢以及資源,以改進安全態勢並酌情降低風險。

致謝

非常感謝 *Emily Fox、Tim Bannister (The Scale Factory)、Chase Pettet (Mirantis) 和 Wayne Haber (GitLab)* 為這篇部落格文章提供了精彩的建議。