Software Security Proposal - 流水线安全

CI/CD流水线中的凭据和权限如何保护?

流水线通常具备读取源码、构建制品和发布生产的能力, 一旦身份失控会直接扩大供应链影响。

2026年7月28日阅读约7分钟
控制流水线身份、执行环境、审批边界和制品发布权限。

按流水线任务分配身份

源码读取、依赖下载、制品上传和生产发布使用不同身份, 每个身份只拥有当前任务所需权限。避免所有项目共享一个永久管理员令牌。

优先使用短期凭据

通过工作负载身份或动态令牌获取云资源和制品库权限, 限定仓库、分支、环境和有效时间。凭据只在任务运行期注入, 结束后立即失效。

隔离不可信执行内容

来自外部分支和合并请求的代码在隔离执行器中运行, 不接触生产凭据。自托管执行器及时清理工作目录和缓存, 防止任务间窃取信息。

保护生产发布环节

生产环境设置独立审批、受保护分支和制品签名校验, 发布身份不能修改流水线规则。记录审批人、制品摘要、目标环境和发布结果。

落地检查清单

  1. 读取、构建和发布使用不同身份
  2. 生产访问采用短期凭据
  3. 外部分支无法读取发布密钥
  4. 生产发布验证制品摘要或签名
方案建议将本文控制项纳入软件安全建议方案, 分别明确研发执行人、管理审批人和安全保障复测人, 让每项措施都有证据闭环。

常见问题

这类控制应该写多细?

建议细到可以分配任务、执行检查和验收证据。不能验收的口号式描述, 应转化为责任人、时限、工具结果和复核记录。

如何和已有安全制度衔接?

组织级制度可作为通用基线, 项目级软件安全建议方案负责说明当前系统适用范围、差异化风险和本次交付证据。