审批与沙箱:Codex 的安全底座
【摘要】 审批与沙箱: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. 三条使用纪律
- 默认不 YOLO。
--dangerously-bypass-approvals-and-sandbox只留给"我完全知道在干什么、且环境可回滚"的瞬间,别写进脚本默认值。 - CI 里用"never + 沙箱"而不是"裸奔":审批没人点,沙箱替你把关。
- 工作区之外的目录,一个都不给,除非明确需要并加了
--add-dir。
下篇:模型选择:Codex 模型家族怎么选
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)