审批与沙箱:Codex 的安全底座

举报
yd_252571961 发表于 2026/11/03 09:05:52 2026/11/03
【摘要】 审批与沙箱:Codex 的安全底座系列第 5 篇 / 共 20 篇Codex 会执行命令,所以它的安全模型是"两道闸门":审批(approval)管"做不做",沙箱(sandbox)管"能碰什么"。理解这两个概念,是把这个工具用明白的前提。 1. 审批策略:模型每做一个"敏感动作"先问不问你策略(--ask-for-approval / config 里 approval_policy)行...

审批与沙箱:Codex 的安全底座

系列第 5 篇 / 共 20 篇

Codex 会执行命令,所以它的安全模型是"两道闸门":审批(approval)管"做不做",沙箱(sandbox)管"能碰什么"。理解这两个概念,是把这个工具用明白的前提。

1. 审批策略:模型每做一个"敏感动作"先问不问你

策略(--ask-for-approval / config 里 approval_policy) 行为
untrusted(默认) 只读命令直接跑;任何写文件/改环境操作都先问你 y/n/a
on-request 模型觉得需要时自己请求,常见默认折中
never 从不问,完全自动(必须配合沙箱,或 --dangerously-bypass-approvals-and-sandbox)

TUI 里也可以用 /approvals 当场切换,不用退出重进。

2. 沙箱:操作系统级的隔离

模式(--sandbox / config 里 sandbox_mode) 能做什么
read-only 只能读,写不了任何东西
workspace-write 可以写当前工作区,工作区外只读;默认无网络
danger-full-access 无沙箱限制(配合 never 就是俗称的 YOLO 模式)

平台实现:

  • macOS:Seatbelt(系统自带的沙盒机制)
  • Linux:Landlock(文件系统)+ seccomp(系统调用)
  • Windows:原生支持在完善中,官方推荐 WSL2(详见第 16 篇)

工作区外的目录想用,显式加白:

codex --sandbox workspace-write --add-dir ../shared-libs

TUI 里 /permissions 也可以管理额外目录,以及给 workspace-write 开网络访问(例如沙箱里要 npm install):

# config.toml
[sandbox_workspace_write]
network_access = true

3. 推荐组合:按任务风险定档

任务类型 审批 沙箱 说明
看代码、解答问题 默认 read-only 零风险,放开跑
写功能、修 bug on-request workspace-write 日常主力档
需要装依赖/跑服务 on-request workspace-write + 网络 记得开 network_access
CI / 无人值守 never workspace-write(+网络) 不 YOLO,靠沙箱兜底
一次性不可逆操作(连生产库) 手动 danger-full-access 用前想清楚,用完回档

4. 三条使用纪律

  1. 默认不 YOLO。--dangerously-bypass-approvals-and-sandbox 只留给"我完全知道在干什么、且环境可回滚"的瞬间,别写进脚本默认值。
  2. CI 里用"never + 沙箱"而不是"裸奔":审批没人点,沙箱替你把关。
  3. 工作区之外的目录,一个都不给,除非明确需要并加了 --add-dir。

下篇:模型选择:Codex 模型家族怎么选

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。