由其他Pipeline触发的CD流水线权限管控异常问题
解决CD流水线运行权限只读限制问题
问题核心
你的情况是因为CD流水线的运行会继承CI发起者(PR创建用户)的身份作为运行所有者,默认情况下,运行所有者拥有管理自己触发的流水线运行的权限,这就导致PR用户能操作自己触发的CD运行,绕过了文件夹的只读权限设置。
具体解决步骤
- 切换CD流水线的触发身份为服务账号
在CI流水线中触发CD流水线时,不要使用当前PR用户的身份,改用专门的服务账号(构建服务身份)来调用触发API。这样CD流水线的运行所有者会变成服务账号,普通PR用户不再关联到任何CD运行的所有者身份,自然无法操作任何CD运行。 - 禁用“运行所有者管理自身运行”权限
进入CD流水线所在文件夹的“Manage Security”页面:- 找到**“Manage builds created by me”权限项,对所有普通用户组/指定用户设置为Deny**
- 确保仅保留“View build pipeline”和“View Build”为Allow,其余如“Stop build”、“Retry build”、“Queue build”等权限全部设为Deny
- 检查流水线独立权限设置
确认CD流水线本身没有单独配置权限(避免覆盖文件夹权限),如果流水线有自定义权限,要同步设置为只读,禁止任何操作类权限。
验证方法
让不同用户发起PR触发CI->CD流程,检查所有用户对所有CD运行都只能查看,无法取消、重试或进行其他操作,同时确认CD流水线仍能被CI正常触发。
内容的提问来源于stack exchange,提问作者Sean Brotherton
相关产品推荐
相关产品推荐

