4.6 确保 CI/CD 管道的安全

无论代码类型如何,CI/CD 管道都有一些共同的实施问题需要解决。确保流程安全涉及到为操作构建任务分配角色。自动化工具(例如,Git Secrets)可用于此目的。为保证 CI/CD 管道的安全,以下安全任务应被视为最低限度:

  • 强化托管代码和工件库的服务器。
  • 确保用于访问存储库的凭证,如授权令牌和生成拉动请求的凭证。
  • 控制谁可以在容器镜像注册处签入和签出,因为它们是 CI 管道产生的工件的存储处,是 CI 和 CD 管道之间的桥梁。
  • 记录所有的代码和构建更新活动。
  • 如果在 CI 管道中构建或测试失败 —— 向开发人员发送构建报告并停止进一步的管道任务。配置代码库自动阻止来自 CD 管道的所有拉取请求。
  • 如果审计失败,将构建报告发送给安全团队,并停止进一步的管道任务。
  • 确保开发人员只能访问应用程序代码,而不能访问五种管道代码类型中的任何一种。
  • 在构建和发布过程中,在每个需要的 CI/CD 阶段签署发布工件(最好是多方签署)。
  • 在生产发布期间,验证所有需要的签名(用多个阶段的密钥生成),以确保没有人绕过管道。