不可變基礎設施

不可變基礎設施是一種安全和操作模型,其中伺服器、容器和映象等元件在部署後永不修改。您不是修補或重新配置即時系統,而是將其完全替換為新版本。

在使用 Docker 強化映象時,不可變性是一種最佳實踐,可以增強軟體供應鏈的安全態勢。

為何不可變性至關重要

可變系統更難於保護和審計。即時修補或手動更新會引入以下風險:

  • 配置漂移
  • 未跟蹤的更改
  • 環境不一致
  • 攻擊面增加

不可變基礎設施透過僅透過受控、可重複的構建和部署進行更改來解決此問題。

Docker 強化映象如何支援不可變性

Docker 強化映象構建為最小化、鎖定且非互動式,這阻止了原地修改。例如:

  • 許多 DHI 映象排除了 shell、包管理器和除錯工具
  • DHI 映象旨在在部署前進行掃描和簽名
  • 鼓勵 DHI 使用者重建和重新部署映象,而不是修補正在執行的容器

此設計與不可變實踐保持一致,並確保:

  • 更新透過 CI/CD 管道進行
  • 所有更改都經過版本控制和可審計
  • 系統可以一致地回滾或重現

實踐中的不可變模式

一些利用不可變性的常見模式包括:

  • 容器替換:不是登入到容器修復錯誤或應用補丁,而是重建映象並重新部署它。
  • 基礎設施即程式碼 (IaC):在版本控制檔案中定義您的基礎設施和映象配置。
  • 藍/綠或金絲雀部署:將新映象與舊映象一起推出,並逐漸將流量轉移到新版本。

透過將不可變基礎設施原則與強化映象相結合,您可以建立一個可預測且安全的部署工作流,該工作流能夠抵抗篡改並最大限度地降低長期風險。