You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为GitHub或Jenkins配置master分支推送前密码校验以限制生产部署权限

解决方案总览

你可以根据团队实际情况选择以下任意一种方案,也可以叠加使用提升安全性:

方案1:调整Git侧权限(从根源减少无授权推送)

  • 收回所有普通用户的master分支直接推送权限,仅保留运维/生产发布负责人的推送权限,普通用户的代码合并走PR/MR流程,必须经过负责人审批后才能合入master,从根源避免无授权代码进入生产部署环节。
  • 可以给master分支加受保护分支规则,主流Git平台(GitLab/GitHub/Gitea等)都自带该功能,开启后仅指定角色/用户可推送、合并代码到该分支。

方案2:Jenkins侧添加强制验证环节(推荐,适配现有推送权限规则)

如果不想调整现有Git的master推送权限,直接修改Jenkins配置即可,操作步骤如下:

  1. 先给Jenkins配置用户权限体系,区分普通用户和生产发布管理员两类角色,只有后者拥有生产部署的执行权限。
  2. 修改现有自动触发的Jenkins生产部署流水线,在部署步骤前新增人工确认+密码验证环节,配置规则:
    • 流水线被push操作触发后,先暂停执行,给指定的生产发布管理员发送通知
    • 只有拥有部署权限的管理员输入预设的验证密码、点击确认后,流水线才会继续执行生产部署步骤
    • 若超出预设等待时长(通常设为12小时)未得到确认,流水线自动终止,不执行部署
  3. 如果你使用声明式流水线,可以直接添加input步骤实现需求,示例配置:
pipeline {
    agent any
    stages {
        stage('代码拉取') {
            steps {
                git url: '你的Git仓库地址', branch: 'master'
            }
        }
        stage('部署前验证') {
            steps {
                input message: '请确认是否执行生产环境部署?', ok: '确认部署', 
                      submitter: '生产管理员用户组名', parameters: [
                          password(name: 'DEPLOY_PASSWORD', description: '请输入生产部署验证密码')
                      ]
            }
        }
        stage('生产环境部署') {
            steps {
                // 此处保留原有部署逻辑
                sh '你的部署执行命令'
            }
        }
    }
}
  1. 额外安全加固:开启Jenkins部署日志审计功能,所有部署操作的执行人、时间、验证记录都会留存可查。

方案3:组合方案(最高安全性)

同时开启Git侧受保护分支规则+Jenkins侧部署验证环节,双重校验避免无授权生产部署。

内容的提问来源于stack exchange,提问作者Arij H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 23:06:01