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

Azure DevOps中‘Block secrets on push’功能未按预期工作求助

Azure DevOps "Block secrets on push" 功能未拦截密钥推送的问题排查

问题描述

我在Azure DevOps (ADO)中启用了Settings > Advanced Security下的‘Block secrets on push’功能,但推送包含密钥的代码、提交相关拉取请求时完全没有被拦截。请问有什么排查或解决办法?

重现步骤

  • 进入ADO仓库的Settings > Advanced Security页面,确认‘Block secrets on push’复选框已勾选
  • 在代码中添加密钥内容
  • 将更改推送到仓库
  • 创建包含该更改的拉取请求

排查与解决建议

  1. 检查密钥检测规则覆盖
    该功能依赖ADO内置的密钥扫描规则,若你使用的是自定义格式的密钥,可能未被内置规则识别。前往Settings > Repository > Policies > Secret scanning,查看已启用的规则列表,确认目标密钥类型在其中。如果是自定义密钥,需手动添加对应的扫描规则。

  2. 确认策略的分支适用范围
    进入Settings > Repository > Policies,找到秘密扫描相关的策略,检查分支匹配模式是否覆盖了你推送的目标分支。比如部分策略可能仅应用于main/master分支,若你推送到其他分支则不会触发拦截。

  3. 验证用户权限是否豁免
    若你的账号拥有项目管理员、仓库管理员权限,可能自带策略豁免权,推送操作会跳过拦截。可以切换到普通开发者账号测试,或者在策略设置中取消对应权限的豁免配置。

  4. 检查扫描策略的执行模式
    确保策略设置为“阻止推送”而非仅“发送提醒”。在Secret scanning策略页面,查看“Action”选项是否选择了Block,若为Alert则只会生成告警,不会拦截推送。

  5. 确认组织层级的设置覆盖
    ADO的秘密扫描功能支持组织层级和仓库层级配置,组织级设置可能覆盖仓库级。进入Organization settings > Security > Secret scanning,检查组织级策略是否允许仓库启用拦截,是否存在全局的豁免规则。

  6. 排查特殊Git操作
    使用git push --force、历史重写(如git rebase)等操作可能绕过策略检查。尝试使用普通推送操作测试,同时在策略设置中确认是否开启了对强制推送的拦截。

内容的提问来源于stack exchange,提问作者Louis XIV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:07:13