基於 Gitea+Drone CI+Vault 打造屬於自己的CI/CD工作流

fzpying發表於2020-10-01

Gitea

Gitea 是一個開源社群驅動的 Gogs 克隆, 是一個輕量級的程式碼託管解決方案,後端採用 Go 編寫,採用 MIT 許可證.

Gitea 的是建立一個極易安裝,執行非常快速,安裝和使用體驗良好的自建 Git 服務。採用 Go 作為後端語言,只要生成一個可執行程式即可。並且它還支援跨平臺,支援 Linux, macOS 和 Windows 以及各種架構,除了 x86,amd64,還包括 ARM 和 PowerPC。

對於我來說,選擇他的原因有兩點

  • UI 好看,我喜歡
  • 資源佔用低,最低要求為廉價樹莓派,對我這種窮 B 來說,利好
  • 團隊維護的開源,非常活躍

Drone

Drone 是一種基於容器技術的持續交付系統。Drone 使用簡單的 YAML 配置檔案(docker-compose 的超集)來定義和執行 Docker 容器中的 Pipelines。

Drone 與流行的原始碼管理系統無縫整合,包括 GitHub,GitHub Enterprise,Bitbucket 等。

Vault

Vault 是一個管理 Secrets 並保護敏感資料的工具,來自HashiCorp,如果你對這個名字有點陌生,那麼你一定知道Vagrant

Vault 是一種安全訪問 Secret 的工具。Secret就是您要嚴格控制訪問的任何內容,例如 API 金鑰,密碼或證照。Vault 為任何機密提供統一的介面,同時提供嚴格的訪問控制並記錄詳細的審計日誌。

現代系統需要訪問大量Secret:資料庫憑證,外部服務的 API 金鑰,面向服務的體系結構通訊的憑證等。瞭解誰正在訪問哪些秘密已經非常困難且特定於平臺。如果沒有自定義解決方案,幾乎不可能新增金鑰滾動,安全儲存和詳細的審計日誌。這是 Vault 介入的地方。
Vault 的主要功能包括:

  • 安全秘密儲存:任意金鑰/值秘密可以儲存在 Vault 中。Vault 會在將這些機密寫入持久儲存之前加密這些機密,因此獲取對原始儲存的訪問許可權不足以訪問您的機密。Vault 可以寫入磁碟,Consul等。
  • 動態秘密:Vault 可以按需為某些系統生成機密,例如 AWS 或 SQL 資料庫。例如,當應用程式需要訪問 S3 儲存桶時,它會要求 Vault 提供憑據,Vault 將根據需要生成具有有效許可權的 AWS 金鑰對。建立這些動態機密後,Vault 也會在租約到期後自動撤消它們。
  • 資料加密:Vault 可以加密和解密資料而無需儲存資料。這允許安全團隊定義加密引數,並允許開發人員將加密資料儲存在 SQL 等位置,而無需設計自己的加密方法。
  • 租賃和續訂:Vault 中的所有機密都有與之相關的租約。在租約結束時,Vault 將自動撤銷該秘密。客戶可以透過內建續訂 API 續訂租約。
  • 撤銷:Vault 內建了對秘密撤銷的支援。保險櫃不僅可以撤銷單個秘密,還可以撤銷秘密樹,例如特定使用者讀取的所有秘密,或特定型別的所有秘密。撤銷有助於關鍵滾動以及在入侵情況下鎖定系統。

Vault UI 操作 點此檢視

Vault CLI 操作 點此檢視

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章