-容器技術架構
容器映像是由開發人員創建和註冊的包,其中包含在容器中運行所需的所有文件,通常按層組織。映像通常包括層,例如最小操作系統核心(又名基礎層)、應用程序框架和自定義代碼。
儘管主機可以直接聯繫註冊中心獲取鏡像並將其部署到容器中,但協調器(例如Kubernetes(K8S)、Docker Swarm、Mesos等)可以自動執行部署過程,從註冊中心拉取鏡像,並將其部署到容器中,並管理容器運行時。
不變性和彈性(Immutability and Elasticity)
正如寵物中的雞、牛、雞和昆蟲類比,部署容器是為了彈性,具有自動“橫向擴展”和“縱向擴展”的能力。
我們很好地照顧我們的寵物,但殺死和吃掉像牛和雞這樣的動物而不會後悔。虛擬機和容器是可以隨時銷毀、替換和添加的工作負載。不變性和無狀態是容器實現彈性的兩個關鍵屬性。
不變性意味著“隨時間不變或無法改變”。(Google) 我們可以將容器視為只讀的;更新容器的唯一方法是用新容器替換它。無狀態意味著容器不會在其本地存儲中保留數據;但是,遠程存儲庫用於跨容器持久化和共享狀態。
大多數應用程序容器技術都實現了不變性的概念。換句話說,容器本身應該作為已部署但未更改的無狀態實體運行。當正在運行的容器需要升級或更改其內容時,它會被簡單地銷毀並替換為具有更新的新容器。
資料來源: NIST SP 800-192
覆蓋網絡(Overlay Networks)
覆蓋網絡通常用於隔離節點之間的流量。相反,可能會導致非容器感知防禦工具難以監控流量。
對容器進行分段和分組(Segmenting and Grouping Containers)
在某些情況下,適合將具有相同用途、敏感性和威脅態勢的容器分組在單個主機上。儘管如此,它並不適用於所有不具有相同安全要求的容器。
僅將具有相同用途、敏感性和威脅態勢的容器分組到單個主機操作系統內核上,以實現額外的縱深防禦。
按用途、敏感性和威脅態勢分割容器提供了額外的縱深防禦。這種分段可以通過使用多個物理服務器來提供,但現代虛擬機管理程序也提供了足夠強大的隔離來有效地降低這些風險。
資料來源: NIST SP 800-192
NIST 應用程序容器安全指南(NIST Application Container Security Guide)
NIST 建議組織應遵循以下建議,以幫助確保其容器技術實施和使用的安全性:
- 定制組織的運營文化和技術流程,以支持容器使開發、運行和支持應用程序成為可能的新方式。
- 使用特定於容器的主機操作系統而不是通用操作系統來減少攻擊面。
- 僅在單個主機操作系統內核上將具有相同目的、敏感性和威脅態勢的容器分組,以實現額外的縱深防禦。
- 為鏡像採用特定於容器的漏洞管理工具和流程,以防止受到損害。
- 考慮使用基於硬件的對策為可信計算提供基礎。
- 使用容器感知運行時防禦工具。
參考
. 什麼是容器安全?
. NIST SP 800-192(應用容器安全指南)
. 容器安全指南——你需要知道的一切
. 寵物和牛的類比展示了無服務器如何融入軟件基礎設施領域
. 寵物與牛的歷史以及如何正確使用類比
. 彈性
. 自動化彈性
資料來源: Wentz Wu QOTD-20210408
PS:此文章經過作者同意刊登 並且授權可以翻譯成中文