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

工具介绍

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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!