Claude Code enforceAvailableModels 补上了 Managed Settings 中 Default 模型的治理漏洞
Claude Code v2.1.175 新增 enforceAvailableModels 托管配置项:启用后,availableModels 白名单同样约束 Default 模型的解析结果,且项目或用户级配置无法扩展白名单。对于通过审批模型列表进行路由的企业团队,这关闭了一个长期存在的隐性绕过路径。

本周发布的 Claude Code v2.1.175 新增了一个托管配置项 enforceAvailableModels,解决了团队在使用 availableModels 白名单时一直绕着走的一个真实治理漏洞。
发生了什么
在此版本之前,Claude Code 的 availableModels 托管配置允许运营方定义一组批准的模型 ID。但这套配置存在两条逃逸通道,大多数团队并未意识到:
- Default 模型别名不受白名单约束。 如果组织的 Default 模型解析到 Opus 4.8,而该模型不在
availableModels白名单中,会话仍会使用 Opus 4.8——白名单只拦截通过/model选择器显式选择的模型,不影响 Default 解析路径。 - 项目和用户级配置可以扩展白名单。 开发者可以在
.claude/settings.json或~/.claude/settings.json中添加托管白名单有意排除的模型,Claude Code 会接受这一配置。
将 enforceAvailableModels: true 写入托管配置层后,两条逃逸通道均被关闭。Default 模型若解析到白名单之外的目标,现在会自动回退到白名单中的第一个允许模型。项目或用户级配置也无法再扩展托管的 availableModels 列表——托管层现在是上限,而不是下限。
为何对 AI 工程团队重要
企业团队强制执行 availableModels 主要出于两个原因:成本控制(防止访问更高费用的模型级别)和合规要求(确保所有 LLM 流量流经经过批准、审计的模型,通常由数据处理协议或内部 AI 治理政策要求)。
v2.1.175 之前的漏洞意味着:一份只包含 ["claude-sonnet-4-6", "claude-haiku-4-5"] 的托管白名单,仍然可能让会话通过 Default 路径落到 Opus 或 Fable 5——这通常是企业按量付费账户中成本最高的模型级别。审计会发现支出异常,但不一定能追溯到根因。
更关键的是:依赖 availableModels 限制哪些模型处理敏感数据的合规团队,现在获得了更强的保证。Default 回退路径历来是风险最高的豁免通道,因为它对大多数开发者是不可见的——他们从未显式选择过模型,因此从未注意到自己已经绕过了白名单。
Router/operator 视角分析
对于通过 AI gateway 路由 Claude Code 会话的团队——无论是将 ANTHROPIC_BASE_URL 指向代理,还是使用 Bedrock/Vertex/Foundry 原生部署——enforceAvailableModels 与 gateway 接收模型 ID 的方式存在重要交互。
启用该配置后,Default 解析到白名单第一个模型时,上游收到的模型 ID 是确定性的,不再随账户类型变化(Enterprise 账户下 Default 解析为 Opus,Pro/Team 下解析为 Sonnet)。这意味着:
- 路由表变得可预期。 你无需再为 Default 因账户类型不同而解析到不同模型 ID 的情况做特殊处理。Gateway 始终会收到托管白名单的第一个条目。
- 支出归因更清晰。 启用
enforceAvailableModels后,若有白名单之外的模型产生 token 用量,必定是配置错误,而非策略绕过——审计更容易定位。 - 白名单与
fallbackModel存在交互。 如果托管配置同时定义了availableModels和fallbackModel,请确认fallbackModel也在白名单中。白名单之外的 fallback 模型现在会被enforceAvailableModels拦截,可能导致会话失败而非降级处理。在生产环境部署前,务必在 staging 环境测试该组合配置。
运营方需要了解的一个细节:enforceAvailableModels 只能在托管配置层设置,不能在项目或用户作用域配置——这是设计上的约束。如果可以在项目层级禁用它,就会从根本上破坏其存在的意义。
启用前的检查步骤
准备启用 enforceAvailableModels 的团队,建议先完成以下预检:
- 核查当前 Default 模型解析结果。 在典型会话中运行
claude /status查看 Default 目前解析到哪个模型。如果不在availableModels白名单中,启用该配置后会话将静默切换到白名单第一个模型。 - 按意图排列白名单顺序。
enforceAvailableModels为 true 且 Default 原本会被拦截时,白名单的第一个条目成为实际生效的 Default。将列表顺序视为一项策略决策。 - 检查 fallback 链。 用户或项目配置的
fallbackModel必须同样在托管白名单内,否则会被拦截。 - 与 gateway 路由表对齐。 如果 AI gateway 根据模型 ID 进行路由,确保预期的模型 ID(白名单第一个允许的模型)已映射到正确的上游 provider/部署。
TheRouter 用户的建议
通过 TheRouter 路由 Claude Code 会话并使用 managed settings 进行模型治理的团队,应在 availableModels 旁边一并添加 enforceAvailableModels: true。这一组合关闭了 Default 模型的绕过路径,让模型 ID 在 gateway 层可见且确定——对于使用 TheRouter 路由规则按成本或 provider 区分 Sonnet 级和 Opus 级流量的团队,这是一次实质性的治理升级。
该配置从 Claude Code v2.1.175 起可用。运行 claude update 升级。
相关阅读
AI 路由新闻与供应商动态 →
Claude 企业版模型权限:按角色的模型访问与 Effort 级别上限功能进入 Beta
Anthropic 的全新企业版模型权限功能允许管理员将特定 Claude 模型锁定到特定角色,并为每个角色设置 effort 级别上限,直接控制 token 消耗。本文梳理 AI 工程团队的配置要点。

Claude Code 2.1.259:组织级 MCP 服务器推送与并发 Session 状态损坏修复
Claude Code 2.1.259 新增 managedMcpServers 托管设置,支持管理员向所有用户推送 HTTP/SSE MCP 服务器;同时修复了并发 session 静默覆写 ~/.claude.json 的 bug,多智能体 CI 环境中工作区信任和 MCP 配置丢失的根因已消除。

Claude Fable 5.1 发布:Containment Escape 默认拦截云凭证获取
Claude Code 2.1.257 同时推出 Fable 5.1 和 Containment Escape 规则,前者定价 $10/$50 per Mtok,后者在 auto 模式下默认阻断 IMDS 访问——生产环境运营者现在就需要排查。