不可變基礎設施
目錄
不可變基礎設施是一種安全和操作模型,其中伺服器、容器和映象等元件在部署後永不修改。您不是修補或重新配置即時系統,而是將其完全替換為新版本。
在使用 Docker 強化映象時,不可變性是一種最佳實踐,可以增強軟體供應鏈的安全態勢。
為何不可變性至關重要
可變系統更難於保護和審計。即時修補或手動更新會引入以下風險:
- 配置漂移
- 未跟蹤的更改
- 環境不一致
- 攻擊面增加
不可變基礎設施透過僅透過受控、可重複的構建和部署進行更改來解決此問題。
Docker 強化映象如何支援不可變性
Docker 強化映象構建為最小化、鎖定且非互動式,這阻止了原地修改。例如:
- 許多 DHI 映象排除了 shell、包管理器和除錯工具
- DHI 映象旨在在部署前進行掃描和簽名
- 鼓勵 DHI 使用者重建和重新部署映象,而不是修補正在執行的容器
此設計與不可變實踐保持一致,並確保:
- 更新透過 CI/CD 管道進行
- 所有更改都經過版本控制和可審計
- 系統可以一致地回滾或重現
實踐中的不可變模式
一些利用不可變性的常見模式包括:
- 容器替換:不是登入到容器修復錯誤或應用補丁,而是重建映象並重新部署它。
- 基礎設施即程式碼 (IaC):在版本控制檔案中定義您的基礎設施和映象配置。
- 藍/綠或金絲雀部署:將新映象與舊映象一起推出,並逐漸將流量轉移到新版本。
透過將不可變基礎設施原則與強化映象相結合,您可以建立一個可預測且安全的部署工作流,該工作流能夠抵抗篡改並最大限度地降低長期風險。