受保护变量是什么
把高权限凭据限定在受信场景可用:GitLab 的受保护变量只在保护分支/标签触发的管道里可见;GitHub 用 environment secrets,作业引用环境并通过保护规则后才拿得到。效果是特性分支与外部 PR 拿不到生产凭据。受保护变量、受保护分支与环境审批三件套组合,决定「谁能碰生产凭据」。
基本信息
| GitLab | 变量勾选 Protected:仅保护分支/标签触发的管道可见 |
|---|---|
| GitHub | environment secrets:作业引用 environment 且通过保护规则后可用 |
| 效果 | 特性分支与外部 PR 拿不到生产凭据 |
| 配套 | 保护分支、环境审批与变量保护三件套一起配 |
| 边界 | 变量保护只控制可见性,不控制打印与转发行为 |
典型使用场景
- 生产发布:发布作业绑定保护环境,凭据按需下发
- 外部 PR 防护:fork 触发的管道默认无凭据
- 审计要求:谁能触发受信管道写进权限设计
- 多环境分离:预发与生产各用一套受保护凭据
- 交接安全:变量负责人随团队权限模型管理
实践要点
- 分支先行:先保护分支(如 main),变量保护才有意义
- 模式收窄:保护标签别用 v* 通配,防止任意打标即发布
- 审批搭配:高权限环境叠加人工审批,谁批谁负责
- 掩码并存:受保护变量同时开启掩码,双保险
- 定期复核:保护分支名单与变量清单季度复查
GitLab 使用前提
GitLab 使用前提
Settings → CI/CD → Variables:
- 勾选 Protected
- 对应环境的分支标记为 Protected branch三件套
| 防线 | 作用 | 配套要求 |
|---|---|---|
| 保护变量 | 限定可见管道 | 保护分支或标签 |
| 保护分支 | 限定谁能推 | 合并规则 |
| 环境审批 | 限定谁能放行 | 审批人名单 |
受保护变量 + 受保护分支 + 环境审批组合,构成「谁能碰生产凭据」的三件套。
保护变量不等于保密:值进了作业仍可能被打印,掩码与最小可见一起用。