---
title: 第 5 章 权限、沙箱与外部副作用治理
description: "全面讲解AI Agent的权限控制体系，包括四层权限模型、沙箱配置、审批策略以及环境分级安全标准，帮助团队建立安全可控的AI开发与运行环境。"
---

Agent 的能力越强，越不能用一个“全自动”开关解决治理问题。本章把文件、命令、网络、浏览器、业务系统与生产操作分层。

<img src="/course/permission-risk-levels.png" alt="权限风险分层" width="1800" height="930" />

*图 3：权限应随风险逐级收紧；自动化不是取消控制，而是把控制放到正确的位置。*

## 5.1 权限由四层共同决定

| **层** | **控制什么** | **常见配置** |
|----|----|----|
| **工作区边界** | Agent 能看到和写入哪些目录、仓库、文件夹 | 打开的项目、writable roots、\`--add-dir\`、多文件夹项目 |
| **沙箱能力** | 进程能否写磁盘、运行命令、联网、访问系统资源 | read-only / workspace / danger-full-access；容器与 OS sandbox |
| **审批策略** | 哪些动作自动通过，哪些必须询问 | Ask for approval、Auto-review、Claude permission modes、白名单 |
| **业务系统权限** | 插件、MCP、机器人账号可以做什么 | OAuth scopes、服务账号、测试租户、审计日志 |

## 5.2 Codex 权限的实用理解

| **配置思路** | **含义** | **适合场景** |
|----|----|----|
| **Ask for approval** | 关键编辑或命令前询问，适合保持人工控制 | 新人、陌生仓库、高风险项目 |
| **Approve for me / Auto-review** | Agent 代表你审阅低风险动作，但仍受沙箱与策略限制 | 日常开发、可信项目、验证充分的循环 |
| **Full access** | 显著放宽本机与命令边界 | 只在隔离环境、临时容器或明确演练场景 |
| **Custom / Profiles** | 细分文件、网络、命令和可写根目录 | 团队标准化、CI、受控开发容器 |

- CLI / 客户端可通过 \`/permissions\` 查看当前边界。

- 常见内置沙箱档位可理解为 read-only、workspace、danger-full-access；实际名称与参数以当前 \`codex --help\` 和组织策略为准。

- 审批与沙箱是两件事：不询问不代表没有沙箱；有沙箱也不代表外部业务账号安全。

## 5.3 Claude Code 权限的实用理解

| **模式** | **用途** | **建议** |
|----|----|----|
| **plan** | 只读分析、方案与代码审阅 | 复杂任务默认起手；先确认路径再执行 |
| **default** | 关键动作逐项确认 | 新人和高风险仓库 |
| **acceptEdits** | 文件编辑更顺滑，命令仍谨慎 | 本地日常开发 |
| **auto** | 在后台安全检查下提高自动批准程度 | 可信项目；确认套餐、模型与组织策略 |
| **dontAsk / bypassPermissions** | 减少或绕过交互确认 | 只在 CI、容器或一次性隔离环境；不要用于日常主机 |

版本变化提醒：Claude Code 的 Auto Mode、默认行为与可用计划在 2026 年多次调整。不要把培训截图或旧讲义当作永久事实；使用 `/permissions`、`/config`、`/help` 与 changelog 复核。

## 5.4 高风险动作的统一审批表

| **动作** | **默认策略** | **附加控制** |
|----|----|----|
| **读取代码与公开文档** | 可自动 | 限制目录；过滤密钥与客户数据 |
| **修改工作区文件** | 可自动或 Auto-review | Git checkpoint、Diff、测试、禁止越界目录 |
| **安装依赖 / 联网下载** | 需确认或白名单 | 锁定 registry、校验许可证与供应链风险 |
| **运行测试 / build / formatter** | 通常可自动 | 资源上限、超时、禁止访问生产网络 |
| **Git commit** | 可自动生成，建议人工审阅 | commit 范围、消息规范、签名策略 |
| **Git push / 创建 PR** | 人工确认 | 目标仓库与分支校验、保护分支、CI 门禁 |
| **发消息 / 写文档 / 改工单** | 预览 + 二次确认 | 测试群、幂等键、审计、撤销路径 |
| **部署 / 数据库迁移** | 人工审批；生产默认禁止自动 | 环境隔离、变更单、备份、回滚与观察窗口 |
| **删除、权限、财务、密钥** | 禁止默认自动化 | 双人审批、专用账号、强审计 |

## 5.5 浏览器和电脑操作的额外风险

- 网页中的提示注入可能诱导 Agent 泄露上下文、点击外链或执行与任务无关的动作。

- GUI 操作可能绕过 API 层的字段校验和 dry-run，因此敏感动作应在点击前停下。

- 多个登录账号并存时，必须明确浏览器 profile、租户、环境和当前身份。

- 不要把截图中的“成功提示”当作最终证据；还要核对后台数据、日志、目标对象和时间。

- 对客户系统使用 Computer Use 前，应取得书面授权并限定范围。

## 5.6 密钥、环境变量与日志

最低安全线：不把真实密钥写入 AGENTS.md、Skill、聊天记录、命令示例、测试快照或 PR。规则文件只写变量名、获取方式和禁止事项。

| **问题** | **正确做法** |
|----|----|
| **Agent 需要访问第三方 API** | 使用系统 keychain、密钥管理器、短期 token 或受控环境注入 |
| **命令输出可能含密钥** | 对日志做脱敏；关闭 shell tracing；不要把完整输出粘进 PR |
| **Cloud / Routine 需要凭据** | 为任务建立专用服务账号与最小 scope，设置过期和撤销机制 |
| **多人共享 MCP** | 由管理员管理连接和权限，不共享个人长期 token |
| **调试生产问题** | 优先只读、采样和脱敏副本；不得让 Agent 自由探索生产数据 |

## 5.7 推荐的环境分级

| **环境** | **允许自动化程度** | **示例** |
|----|----|----|
| **个人沙盒** | 高；仍保留外部副作用确认 | 临时仓库、Mock 数据、容器 |
| **团队开发** | 中高；规则、CI、白名单统一 | 开发分支、测试数据库、内部插件 |
| **预发布** | 中；变更与验证受控 | 回归、性能、部署演练 |
| **生产** | 低；只读诊断优先，写操作必须审批 | 日志查询、变更建议、人工执行 runbook |
| **高敏系统** | 极低或禁止 | 财务、身份权限、密钥、医疗与受监管数据 |