首页/开发/CI/CD 与发布速查/受保护变量与环境保护
环境与配置管理60 条

受保护变量与环境保护

把高权限凭据限定在受信场景可用:GitLab 受保护变量只在保护分支/标签管道可用;GitHub 用 environment secrets 加审批。

CI/CD 与发布速查开发更新于 2026-10-13

受保护变量是什么

把高权限凭据限定在受信场景可用:GitLab 的受保护变量只在保护分支/标签触发的管道里可见;GitHub 用 environment secrets,作业引用环境并通过保护规则后才拿得到。效果是特性分支与外部 PR 拿不到生产凭据。受保护变量、受保护分支与环境审批三件套组合,决定「谁能碰生产凭据」。

基本信息

GitLab变量勾选 Protected:仅保护分支/标签触发的管道可见
GitHubenvironment secrets:作业引用 environment 且通过保护规则后可用
效果特性分支与外部 PR 拿不到生产凭据
配套保护分支、环境审批与变量保护三件套一起配
边界变量保护只控制可见性,不控制打印与转发行为

典型使用场景

  • 生产发布:发布作业绑定保护环境,凭据按需下发
  • 外部 PR 防护:fork 触发的管道默认无凭据
  • 审计要求:谁能触发受信管道写进权限设计
  • 多环境分离:预发与生产各用一套受保护凭据
  • 交接安全:变量负责人随团队权限模型管理

实践要点

  • 分支先行:先保护分支(如 main),变量保护才有意义
  • 模式收窄:保护标签别用 v* 通配,防止任意打标即发布
  • 审批搭配:高权限环境叠加人工审批,谁批谁负责
  • 掩码并存:受保护变量同时开启掩码,双保险
  • 定期复核:保护分支名单与变量清单季度复查

GitLab 使用前提

GitLab 使用前提
Settings → CI/CD → Variables:
- 勾选 Protected
- 对应环境的分支标记为 Protected branch

三件套

防线作用配套要求
保护变量限定可见管道保护分支或标签
保护分支限定谁能推合并规则
环境审批限定谁能放行审批人名单
受保护变量 + 受保护分支 + 环境审批组合,构成「谁能碰生产凭据」的三件套。
保护变量不等于保密:值进了作业仍可能被打印,掩码与最小可见一起用。

易错点

  • 变量受保护但分支未设保护:普通分支同样能取到凭据,两处一起配
  • 给受保护标签配了通配模式(如 v*):任何打标签的人都能触发发布,限定发布职责
  • 把非敏感变量也受保护:调试管道拿不到配置,分级管理只保护高权限项
  • 审批人与触发人同权重:自我批准消解保护,审批人独立设置

数据来源与参考

  • GitLab Docs《Protected variables》
  • GitHub Docs《Using environments for deployment》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌