直接答案:AI 编程智能体不应直接持有长期密钥。把任务放入一次性沙箱,用独立身份、最小文件与网络权限、短期凭据代理和模型外命令审批控制能力;结束后立即撤销并做负向验证。提示词里的“不要泄露”不是安全边界,沙箱也不能替代凭据隔离、审查和事故响应。

直接答案:不要让智能体看见它不需要的秘密
保护 AI 编程智能体使用的密钥,关键不是在提示词里反复要求保密,而是让执行环境从技术上拿不到长期秘密。每个任务应使用独立身份、最小目录、受限网络和短期凭据;高风险命令在模型之外由确定性策略阻断或交给人工批准;任务结束立即撤销权限并销毁环境。沙箱只能限制影响面,不能替代凭据代理、代码审查、测试与事故响应。
为什么重写 124997 而不新建另一个安全清单
站内已经存在‘编程智能体怎样保护密钥’这一明确主意图,继续创建相似 URL 会让用户和搜索引擎难以判断主页面。旧稿篇幅短、来源核验停留在八月、没有官方证据图,也没有可执行的权限合同。本轮先在排期门禁冻结旧稿,再保留其主题与 URL 做完整重写;这样既避免内耗,也不会让旧批准状态绕过当前证据与实页验收。
先区分秘密、权限与能力
密钥是认证材料,权限是身份可执行的动作集合,能力则是文件、网络、命令和工具共同形成的实际效果。即使不把 API Key 写进提示词,智能体仍可能通过环境变量、配置文件、浏览器会话、云 CLI、SSH Agent 或日志读取到它;即使令牌是只读,开放任意网络仍可能把私有代码传出。验收必须同时覆盖数据、身份、执行和出口四个面,而不是只搜索源代码里的字符串。
建立资产清单:真正需要保护的是什么
在启动任务前列出代码仓库、客户数据、内部文档、模型提示、云资源、软件供应链、发布渠道和第三方账户。对每项资产记录所有者、敏感级别、允许用途、可接受暴露时间与恢复方式。不要把‘开发环境’笼统视为低风险:测试数据库可能含真实副本,构建日志可能含签名地址,锁文件和私有包名也可能泄露组织结构。资产不清楚,就无法定义最小权限。
为每个任务写权限预算
权限预算是一份可判定的任务合同:允许读取哪些路径、写哪些路径、运行哪些命令、访问哪些域名、调用哪些工具、使用哪种身份、持续多久、最大费用和什么动作必须停下来询问。预算应在智能体执行前由负责人批准,结束后与实际轨迹比较。若任务不断申请预算外能力,先拆分任务或补证据,不要把临时全开放变成默认配置。
第一层边界:独立身份而不是共享个人账户
能创建服务身份、工作负载身份或机器人账户时,不让智能体继承开发者的长期个人凭据。身份只加入目标仓库、测试环境和必要 API,不能管理组织、修改安全策略或访问账单。为读、写、发布分别使用不同身份;代码分析通常不需要推送,提交 PR 不等于有权合并,上线更不应与写仓库绑定。审计记录才能明确区分人和自动化动作。
第二层边界:工作区隔离与文件白名单
把任务放在一次性工作区、容器或虚拟机中,只挂载所需仓库。开发者主目录、下载目录、浏览器数据、SSH、云配置、密码管理器和其他项目默认不可见。依赖缓存若必须共享,应只读并检查内容;输出通过明确的产物通道带出,不允许智能体任意遍历宿主机。Git worktree 能隔离代码改动,却不自动隔离进程权限、网络和主目录,因此不能单独当沙箱。
第三层边界:网络出口默认关闭
若任务只做本地重构和测试,最安全的网络策略是无出口。需要下载依赖或查文档时,按域名、协议、端口和方法逐项开放,并经代理记录目的。只限制 DNS 名称还要考虑重定向、子域、IP 直连和软件包安装脚本。一个能读私有代码且可连接任意主机的智能体拥有直接外传通道;日志和告警应显示阻断事件,但不得再次记录完整秘密。
第四层边界:把秘密留在可信代理外侧
长期第三方凭据应保存在智能体不可读的密钥管理系统中。智能体只提交受约束的操作请求,可信代理校验目标、方法、参数、数据分类和配额后代为签名或注入一次性令牌,并只返回必要结果。OpenAI 官方沙箱安全文档也强调:把秘密注入环境变量仍会暴露给智能体生成的代码。凭据代理不是简单的环境变量重命名,而是执行边界。

第五层边界:命令审批发生在模型之外
命令审批器应解析工作目录、可执行文件、参数、重定向、管道、命令替换、通配符和子进程影响,再依据确定性规则允许、拒绝或要求人工确认。只做关键字黑名单很容易被解释器、别名或组合命令绕过。对删除、覆盖、改权限、修改 Git 历史、联网传输、安装依赖、部署、支付和账户管理等动作默认拒绝;人工看到的是完整命令与预期影响,而不是模糊摘要。
沙箱解决什么,又不解决什么
沙箱可以限制文件系统、网络、进程和系统调用,降低错误命令或恶意仓库的爆炸半径。它不能证明生成代码没有漏洞,不能阻止允许目录内的数据被破坏,也不能撤销已经发送的请求、发布的包或更改的云资源。还要检查沙箱外的内置文件工具、MCP 工具、IDE 扩展和浏览器能力是否受同一策略控制;某些产品只隔离终端子进程。
敏感文件不应依赖文件名猜测
除了常见的 `.env`、私钥和云配置,还要保护部署清单、签名脚本、生产域名、内部证书、备份、数据库转储、浏览器 Cookie、包管理器认证文件和包含临时链接的日志。策略最好按绝对路径和数据分类建立拒绝区,并对新文件继承保护。仅阻止读取不够:智能体也不应覆盖、删除、改名或把这些文件纳入 Git。敏感文件编辑应始终显式批准。
仓库规则文件本身也是输入
AGENTS.md、CLAUDE.md、README、问题描述、代码注释、测试快照和工具说明都可能携带恶意或过期指令。它们可以引导智能体读取凭据、访问外部地址或降低检查。把仓库内容标为不可信数据,不能让它修改系统级权限策略;权限申请必须经过独立控制面。近期 Aletheia 研究提出对规则文件做权限最小化测试,也说明‘补丁正确’不等于请求的权限合理。
MCP 与扩展不能继承无限信任
MCP 服务器和 IDE 扩展可能在宿主机上读取文件、执行代码并调用外部服务。启用前核对来源、维护者、版本、签名或摘要、更新渠道、工具清单、参数约束和数据出口。禁止自动发现后无审核接入,防止工具名称遮蔽与描述注入。给每个工具单独授予资源范围,不因为一个服务器中有低风险查询工具,就把同服务器的删除和管理工具一起开放。
短期凭据必须真的短期且可撤销
使用按任务生成、范围受限、有明确到期时间的令牌,并记录颁发者、使用者、资源、方法和撤销入口。到期时间不能代替主动撤销:任务提前完成、异常终止、日志出现疑似泄露或工作区丢失时要立即失效。测试撤销后现有连接、刷新令牌和缓存授权是否仍能工作。若供应商只能提供长期密钥,应通过代理缩小能力,而不是直接挂载。
Git 权限应拆成读取、推送、合并和发布
智能体完成日常编码通常只需要克隆目标仓库、推送自己的分支和创建 PR。它不应修改分支保护、批准自己的 PR、强推主分支、读取组织级秘密或触发生产部署。工作流令牌默认只读,单个作业按需提升;来自外部分支的代码不能在带写令牌和秘密的特权上下文执行。合并由受保护规则和独立审查决定,发布使用另一个身份。
云权限按资源、动作与时间三维缩小
不要给智能体通用管理员角色。为单个测试项目、命名空间或资源前缀授权,只开放任务所需 API 动作,并设置会话时限、预算和区域。基础设施变更先产生计划,在无生产写权限的环境审查;删除、公开访问、跨账户信任、IAM 与密钥变更必须人工批准。云审计日志保存调用身份和参数摘要,但对令牌、用户数据和请求体执行脱敏。
数据库访问优先使用合成或脱敏数据
代码生成和测试不应默认连接生产数据库。提供版本匹配的本地结构、合成数据或经审批的脱敏快照;账户只允许目标 schema 与必要操作,设置查询超时、行数和费用上限。只读账户仍可能泄露全部数据,故还需列级、行级和导出限制。迁移在隔离环境演练,生产执行由独立流水线完成,并保留回滚或前向修复路径。
软件包安装是代码执行,不只是下载
npm、pip、Cargo、Maven 和容器构建可能执行安装脚本、解析私有源并访问网络。锁定依赖和注册表,验证包名、版本、完整性与许可证;对新依赖要求人工审查。安装阶段使用不含生产秘密的环境和受限出口,避免依赖脚本读取凭据。缓存只读并定期重建。漏洞扫描能发现已知问题,但不能证明包来源可信或安装脚本没有越权行为。
浏览器与网页登录会话同样是凭据
浏览器 Cookie、Local Storage、已登录标签页和单点登录会话可能比 API Key 权限更大。让智能体操作网页时使用独立浏览器配置、专用测试账户和域名白名单,不复用个人浏览器。提交、购买、删除、发送消息与授权应用等副作用要求显式确认。截图和网络日志应裁掉个人信息与令牌;任务结束销毁浏览器配置并撤销会话。
审批策略按副作用分级
观察类动作可在批准目录中自动执行;可逆的本地编辑允许在沙箱中执行并保留差异;外部副作用如推送分支、创建工单或发送消息,需要受限身份和确认;不可逆或高影响动作如部署、删除数据、轮换密钥和变更权限应默认拒绝或由责任人批准。分级要结合组织环境,同一动作在测试与生产中的风险不同,不能照搬通用清单。
避免审批疲劳
如果每个低风险读取都弹窗,使用者会习惯无脑确认,高风险动作反而失去辨识度。先通过更窄的工作区、工具接口和网络策略减少申请,再把批准集中在数据跨边界、不可逆修改和权限提升上。审批界面显示目标资源、完整参数、来源输入、差异、可逆性和过期时间。会话级授权必须有清晰范围,禁止一个模糊的‘始终允许’覆盖所有未来仓库。
为常用动作提供窄工具,不给任意 Shell
能用 `run_targeted_tests`、`read_issue`、`create_draft_pr` 等用途明确的工具时,不开放通用命令执行。窄工具对参数做 schema 校验、固定工作目录、限制输出和副作用,并在服务端检查授权。确需 Shell 时只在隔离环境开放,限制解释器、子进程和资源。工具名称不是安全边界,仍需验证参数与调用者身份,防止通过看似安全的工具读取任意路径。
日志应证明动作,而不是复制秘密
审计记录至少包含任务 ID、身份、策略版本、工具或命令、目标资源、结果、审批人和时间。参数只保留排障必要字段,对密钥、Cookie、授权头、个人数据、完整提示和文件内容做结构化脱敏。日志存储与智能体执行环境分离,限制读取和修改权限。用金丝雀秘密或测试令牌验证日志链路是否泄露,而不是等真实事故后才发现。
检测秘密要覆盖历史与产物
上线前扫描当前差异、完整 Git 历史、构建产物、容器层、测试快照、日志、错误报告和发布包。发现秘密后不能只从最新提交删除,因为旧提交、缓存和镜像仍可访问;先撤销或轮换,再清理历史并通知受影响系统。扫描器有误报和漏报,需维护组织特有格式与允许清单。通过扫描只证明规则没有命中,不能证明绝对无泄露。
用金丝雀凭据验证边界
创建无生产权限、可唯一追踪的测试秘密,放在理论上不可读的位置,执行代表性的读取、构建、报错、网络和工具调用。任何访问或外传尝试都应被阻断并触发告警。金丝雀测试要覆盖重定向、子进程、压缩、编码和间接工具调用。它能证明特定路径在当前配置下的行为,不能替代对所有数据和未知攻击的评估。
准备正常路径、越权路径与失败路径
验收夹具至少包含:允许目录正常编辑;读取 SSH 或云配置被拒绝;访问未授权域名被拒绝;危险命令进入人工批准;短期令牌过期;代理遇到不允许的方法;任务取消后权限撤销;日志不出现测试秘密。每个用例保存策略版本、输入、预期、实际和回执。只运行成功路径会让策略配置错误长期隐藏。
不同操作系统需要分别验证
macOS、Linux、WSL2 和 Windows 使用的隔离原语、路径语义、符号链接与进程模型不同。不要在 Linux 通过后假设 Windows 等价;特别检查盘符、UNC 路径、WSL 挂载、容器套接字和宿主集成。官方文档中标为 Preview 或 Experimental 的能力应写明状态和限制。策略升级或系统补丁后重新运行越权夹具,不能只看配置文件未变。
符号链接、挂载与套接字是常见逃逸面
允许目录中的符号链接可能指向主目录或秘密文件;Docker 套接字、SSH Agent 套接字和云元数据端点可以绕过表面的文件限制获得更大权限。启动前解析实际路径,禁止越界链接和特权挂载,隔离命名空间并阻断元数据地址。容器内 root 配合宿主套接字不等于低权限。对所有继承到子进程的文件描述符和代理变量做清点。
缓存与临时文件也会跨任务泄露
共享依赖缓存、编译缓存、临时目录和终端历史可能把一个任务的路径、源码或令牌带给另一个任务。默认按任务隔离,必须共享时使用只读、内容寻址和清理策略。测试失败产生的 core dump、调试包和录像要按敏感数据处理。销毁工作区前列出带出的产物并校验哈希,不能把整个目录打包上传作为排障材料。
控制成本和资源也是权限治理
无限 CPU、内存、进程、磁盘、令牌、API 调用与云费用会让错误循环变成事故。为任务设置硬限额、软告警、总时限和自动停止条件;重试使用幂等、退避和最大次数。费用上限不能只靠模型自觉,应该由执行器和供应商配额强制。资源限制同时降低拒绝服务风险,但过低会造成假失败,所以需记录任务类型和合理基线。
异常时优先停止能力,而不是继续问模型
检测到未知域名、秘密扫描命中、权限预算外调用、重复危险命令、策略文件变化、异常费用或审计中断时,执行器应立即暂停,撤销短期凭据并保存证据。不要让同一个智能体决定自己是否可以继续。由独立控制面判断恢复、缩小范围或终止;恢复后使用新环境和新凭据,不复用可能受污染的会话。

事故响应从撤销开始
疑似密钥泄露时先撤销或轮换,不等确认攻击者是否已经使用。随后检查访问日志、Git 历史、构建产物、代理、浏览器会话、云审计和第三方系统,确定暴露时间、权限和调用。保留任务输入、策略版本、工具轨迹和审批记录,避免在清理时破坏证据。通知资产所有者并修复导致泄露的边界,而不是只删除一条日志。
轮换后验证旧凭据真正失效
轮换完成要用安全的负向测试确认旧令牌无法读取、写入或刷新,并检查长期连接、缓存、镜像、CI 变量和备用环境是否仍持有副本。更新依赖系统后运行最小业务测试,防止因遗漏凭据导致服务中断。记录新旧版本、撤销时间、影响系统和负责人;不能把‘控制台显示已轮换’当作所有副本都失效的证明。
任务结束要执行销毁清单
合并或放弃任务后撤销临时身份、关闭代理授权、删除工作区与浏览器配置、停止计算资源、清除缓存、归档必要回执并核对没有残留 Cron 或队列任务。销毁脚本自身应确定性运行并报告失败。需要保留调试材料时,只保存批准的最小集合,脱敏后进入受控存储并设置到期时间,不能把整个沙箱永久保留。
团队级策略与个人实验应分层
个人本地实验可以更灵活,但只要接触公司代码、客户数据、共享账户或发布渠道,就需要团队基线。组织策略应禁止全局自动批准、生产凭据、无审核 MCP 和无法审计的扩展,同时提供经过批准的沙箱模板和窄工具,避免开发者为了完成工作自行绕过。例外必须绑定任务、负责人和过期时间,并在结束后复查。
如何判断可以扩大自治
只有当代表性任务在多个周期中保持越权阻断、功能通过、日志完整、撤销成功和人工抽检合格,才逐步减少低风险审批。扩大前先明确新增能力、失败半径与回退开关;一次只放开一个维度。自治程度不是模型品牌或基准分数决定的,而是特定任务、工具、数据和控制环境共同决定。出现新工具、新来源或策略更新时回到更保守级别。
一页上线判定
允许上线需要同时满足:资产与权限预算已批准;独立身份和短期凭据生效;宿主秘密不可见;文件与网络边界通过负向测试;危险命令外部审批;工具和依赖来源已核验;日志脱敏且不可由智能体修改;任务资产、回滚和撤销演练完整;负责人接受残余风险。任一证据缺失就保持试验或只读状态,不用‘模型表现很好’替代控制。
远程云端智能体先核对数据落点
远程执行减少了本机文件暴露,却把代码、提示、日志和构建产物交给新的运行环境。上线前确认租户隔离、处理地区、保留期限、训练使用、子处理者、导出删除、支持人员访问和事故通知;再核对实际仓库范围和安装脚本。云端隔离不自动等于秘密安全:若把生产令牌作为环境变量注入,生成代码仍可能读取并发送。
本地智能体先清点继承的用户权限
本地工具常以当前登录用户运行,因此天然能触达主目录、剪贴板、浏览器、网络盘、开发证书和已有 CLI 会话。启动前从干净账户或受限容器运行,显式挂载目标目录,移除代理和凭据环境变量,关闭不需要的宿主集成。不要因为数据没有离开电脑就忽略破坏风险;误删、加密、强推和内部横向移动都可能发生在本地。
CI 中的智能体要防止秘密跨事件泄露
CI 任务应区分可信分支、内部 PR 与外部 PR。来自不可信分支的代码不能在具有秘密或写令牌的上下文执行,也不能通过缓存、制品或日志间接读取前一步的秘密。工作流权限默认只读,每个作业按需提升;上传制品前扫描敏感信息。需要给 PR 评论时,由独立特权作业消费已经验证的结构化结果,不检出并运行贡献者代码。
Webhook 与回调地址必须当作出口
智能体或工具可能通过 Webhook、错误回调、遥测端点和通知集成发送数据,这些路径常被网络白名单遗漏。为每个回调固定目标、方法和负载 schema,禁止用户输入直接决定 URL;代理检查重定向、DNS 变化和私网地址。签名密钥保留在发送服务中,智能体只提交事件标识。接收端验证签名、防重放和时间窗,失败重试不得无限扩大外泄。
临时下载链接也属于秘密
对象存储签名 URL、包下载令牌、一次性上传地址和密码重置链接虽然会过期,仍能在有效期内授权访问。不要把完整链接写入提示、日志、截图、PR 或测试快照;由代理在真正使用时生成最短有效期,并限制方法、对象和来源。任务结束主动失效或更换对象版本,检查浏览器历史、Shell 历史和错误追踪是否保存了查询参数。
OAuth 授权要检查范围与刷新能力
授权第三方应用时不仅看当前访问令牌,还要看请求范围、离线访问、刷新令牌、组织资源和管理员同意。优先使用设备或服务身份的最小范围,禁止智能体自行扩展 scope。撤销测试要覆盖刷新令牌和已创建会话,确认应用不能静默换取新令牌。若供应商把多个高风险动作捆绑在一个范围内,应通过代理暴露窄操作,而不是接受整包授权。
模型提供商密钥与业务密钥分开
调用模型的 API Key 只用于模型服务,不应同时拥有代码仓库、数据库、云平台或客户系统权限。业务工具调用由应用后端独立鉴权,模型只产生参数建议。为模型项目设置费用、速率、允许模型和数据策略;为业务动作设置资源级授权和审计。两类密钥分离后,即使模型调用凭据泄露,也不会直接变成生产系统管理员权限。
多智能体协作不能隐式扩大权限
主智能体把任务交给子智能体时,子任务只继承完成该步骤所需的文件、工具和时间,不应自动复制主任务全部能力。记录委派链、每级身份、输入摘要和输出位置;禁止子智能体再无界委派。汇总者只能读取批准产物,不能因为需要整理结果就获得所有执行权限。一个子任务触发异常时,应能单独撤销而不影响其他安全任务。
记忆与长期上下文要设置数据边界
持久记忆可能保存路径、命令、内部主机名、错误输出甚至秘密片段,并在以后不相关任务中重新出现。只写入经过分类的必要结论,默认不保存凭据、原始日志、客户数据或完整代码;设置项目隔离、访问控制、保留期和删除机制。写入前脱敏,读取时仍视为不可信输入。关闭会话不等于清除服务端记忆,必须核对产品实际行为。
提示和工具输出都要做数据最小化
发给模型的上下文只包含完成当前决策所需片段。日志排障时截取相关行并移除授权头、Cookie、查询参数和个人信息;数据库结果只返回必要字段与有限行;仓库搜索先在本地筛选。数据最小化不仅减少泄露,还降低提示注入和错误推断。若模型需要更多上下文,让它提出理由和范围,再由控制面决定,而不是一次性上传整个仓库。
截图、录像和终端回放要单独治理
可视化证据容易包含浏览器账号、通知、文件路径、密钥、内部域名和客户信息。采集前使用专用账户和干净桌面,裁剪到支撑结论的最小区域;发布前做文字识别和人工复核。录像与终端回放按敏感产物存储,限制下载和保留时间。打码要覆盖原始文件和缩略图,不能只在网页上叠一层可移除遮罩。
测试数据生成器不能回填真实秘密
构造夹具时使用明显的无效占位符和本地测试证书,不从生产日志复制真实令牌、邮箱或客户记录。某些测试工具会自动读取环境变量或默认云凭据,应在空环境运行并显式传入假值。秘密扫描器允许的测试模式要足够独特且范围受限,避免全局忽略真实格式。测试成功后检查产物和快照,确保没有意外写入宿主信息。
代码解释器和 Notebook 需要相同边界
Python、Node、Shell、Notebook 和数据分析工具都能读取文件、启动子进程和访问网络。不要把‘仅用于计算’视为无副作用。解释器运行在与智能体相同的受限文件和网络策略下,内核按任务创建,完成即销毁;包安装、文件上传和导出单独批准。输出大小与类型受限,防止把大量敏感数据编码到图像、压缩包或富文本中带出。
构建系统和编译器也可能执行任意代码
Makefile、Gradle 插件、编译器宏、测试发现、文档生成器和代码格式化器都可能执行仓库代码。打开陌生项目时先以只读方式检查构建配置,不在带秘密环境直接运行‘标准构建命令’。用隔离容器、无网络和无长期凭据完成首次构建;发现下载脚本、二进制插件或动态配置时升级审查。工具名称熟悉不代表输入可信。
容器镜像要验证来源与运行参数
固定镜像摘要、核对维护者和签名,扫描基础层与软件清单;运行时去除特权模式、宿主 PID、设备、敏感挂载和容器管理套接字,设置只读根文件系统和非 root 用户。镜像内不烘焙密钥,构建秘密使用不会进入层历史的机制。退出后检查卷和构建缓存,因为删除容器并不自动删除所有持久数据。
策略文件必须版本化并受保护
文件与网络规则、批准矩阵、工具清单和凭据代理配置应进入独立受保护仓库,由安全与业务所有者审查。智能体可以建议变更,但不能在同一任务中修改策略并依据新策略批准自己。每次运行记录策略版本与哈希,升级先在负向测试集验证。紧急修改有到期时间和回滚提交,防止临时放宽永久残留。
对策略做差异审查而不是只看最终结果
权限配置从允许两个目录变成允许整个工作盘,可能只是一行通配符变化。审查时把旧、新策略规范化后比较新增资源、动作、网络和时限,突出权限扩张;缩小权限也要确认任务仍可完成。自动校验拒绝空白范围、根目录、任意域名和无限到期。最终测试通过不能证明权限合理,因为过宽策略通常更容易让测试通过。
用影子模式评估新阻断规则
直接启用新策略可能误伤正常工作,可先在不放行额外能力的前提下记录‘若启用将如何判定’,比较真实任务的允许、拒绝和需审批分布。影子日志同样脱敏且设保留期。完成样本复核后,小范围启用并保留快速回退。影子模式只能评估当前观察到的调用,不能证明未出现的攻击会被阻断,因此仍需专门负向夹具。
红队用例要来自真实控制面
测试不只问模型会不会听从恶意提示,而要尝试通过文件、工具描述、网页、依赖脚本、编码数据、重定向和子进程触发实际越权。目标是验证执行器是否拒绝秘密路径、未知出口和高风险副作用。每个用例固定输入和预期,失败时保存最小复现并修策略。不要把模型口头拒绝视为通过;只有控制面阻断或安全替代路径才算证据。
恢复测试要覆盖中途终止
在下载依赖、修改文件、取得短期凭据和发起外部请求等不同阶段强制终止任务,检查锁、临时文件、半成品、会话和权限是否清理。重启后不能自动继承旧的高权限状态或重复不可幂等副作用。为可恢复任务记录检查点,但检查点不得包含明文秘密。恢复流程需要人工确认当前任务和资产仍一致,避免把旧授权带入新上下文。
密钥轮换方案要避免同时失效
生产系统轮换常需要新旧凭据短暂重叠。先创建新凭据并部署到可信调用方,验证健康后撤销旧值;重叠窗口最短且有监控。智能体可以生成计划和检查清单,但不应同时拥有创建、分发和撤销三种权限。若系统不支持双密钥,准备维护窗、回退与负责人。任何示例都不在文章、工单或聊天中粘贴真实值。
第三方故障不能触发自动放宽
密钥管理、代理、包源或审批服务不可用时,安全默认值应是暂停或降级为只读,而不是把秘密直接注入环境、切换任意网络或全局自动批准。为关键服务设计缓存时,只缓存经过加密且仍受范围和时限约束的授权。记录降级原因、开始结束时间和受影响任务。恢复后复核期间是否存在旁路,并撤销为应急创建的临时权限。
合规映射不能替代技术验证
把控制映射到企业政策、ISO、NIST 或监管要求有助于分工和审计,但表格打勾不能证明沙箱真的阻断了路径,也不能证明日志没有秘密。每条制度要求连接到可执行配置、负向测试、负责人和回执。法律、行业和地区适用性由专业人员判断;本文提供的是工程控制方法,不给出合规结论。供应商声明也需结合自己的部署方式核验。
采购智能体产品时索取可验证证据
询问数据保留、训练使用、租户隔离、地域、密钥管理、短期身份、文件与网络控制、MCP 治理、审计导出、删除、事故通知和安全更新。要求演示拒绝路径、撤销和日志脱敏,而不是只看功能列表。试点使用非生产数据和专用账户,保存配置与结果。若关键控制仅写成路线图或销售承诺,就按当前不可用处理,不把未来能力写入上线结论。
把权限复查纳入版本升级
智能体、IDE、扩展、MCP、运行时或操作系统升级可能改变默认批准、沙箱覆盖和网络行为。升级前阅读官方变更,复制生产策略到隔离环境,重跑允许与拒绝夹具,并比较实际调用轨迹。只有功能和安全门禁同时通过才推广;自动更新高权限组件要受控。版本回退也需验证数据格式与策略兼容,不能假设旧版本立即恢复旧边界。
小团队的最低可行落地顺序
资源有限时先做四件事:把智能体移到独立账户和一次性工作区;从环境中移除长期秘密;关闭默认网络出口;让部署、删除和权限变更必须人工批准。随后补齐短期身份、凭据代理、结构化审计和负向夹具。不要等到采购完整平台才开始,也不要因为暂时无法覆盖全部场景就允许管理员权限。每一步都记录负责人和下一缺口。
大型组织应明确控制所有者
开发平台团队负责沙箱模板与执行器,安全团队维护阻断规则和红队用例,身份团队提供短期凭据,业务所有者定义任务数据和可接受副作用,审计团队验证回执完整性。所有者分开可以避免智能体平台既制定规则又自证合格。跨团队异常要有统一任务 ID 和升级路径;责任不清时,高风险能力保持关闭。
每月复核哪些指标
跟踪权限预算外请求、人工批准率与拒绝率、秘密扫描命中、未知出口、撤销耗时、销毁失败、策略例外、过期未回收身份和负向测试通过率。指标用于发现控制退化,不用来证明绝对安全;批准率低可能是工具设计差,批准率高也可能是审批疲劳。每个异常回到具体任务和策略版本,避免只报一个看似良好的总分。
把安全结论写成可失效声明
验收记录应写明日期、产品版本、操作系统、策略哈希、测试范围、已知缺口和下一复查条件。例如只能说‘在这些路径、域名和夹具下未取得测试秘密’,不能写‘智能体绝不会泄露密钥’。新增工具、变更网络、升级版本、接入生产数据或超过复查日期时,原结论自动失效。可失效声明比永久认证更符合快速变化的智能体生态。
证据边界:本文没有证明什么
本文整合当前官方文档、研究与编辑方法,并提供静态权限合同与校验器;没有连接用户公司的仓库、云账户或生产密钥,也没有对某个商业编码智能体做攻击评测。示例通过只证明字段与约束符合本文合同,不证明真实沙箱不存在逃逸。OpenAI、VS Code、OWASP 与论文中的能力说明属于各自来源,官方展示不等于本站实测。实施时仍需在自己的环境复现。
权限预算的最小记录表
| 字段 | 必须记录 | 阻断示例 |
|---|---|---|
| 身份 | 任务专用主体、所有者、到期时间 | 共享个人令牌、组织管理员 |
| 文件 | 可读、可写、拒绝路径与真实路径 | 主目录、SSH、云配置、越界链接 |
| 网络 | 域名、端口、方法、代理与配额 | 任意出口、IP 直连、未知重定向 |
| 命令 | 工作目录、可执行文件、参数与副作用 | 删除、强推、部署、权限变更 |
| 秘密 | 代理、短期令牌、撤销与负向测试 | 长期密钥进入环境变量或日志 |
| 结束 | 销毁、归档、残留检查与负责人 | 任务完成但会话和 Cron 继续存在 |
官方证据图与使用边界

当前一手来源
- OpenAI Sandbox security
- VS Code Secure AI-assisted development
- VS Code Manage approvals and permissions
- OWASP Secure Coding with AI Cheat Sheet
- Aletheia: Permission-Minimality Testing for Coding-Agent Rules
- NIST Secure Software Development Framework
继续完成相邻任务
- 用智能体 PR 验收指南把权限边界连接到合并门禁。
- 用企业 Agent 权限与验收指南建立组织级控制。
- 用模型 API 故障恢复指南处理重试、幂等和降级。
- 用Claude Code 权限指南核对具体工具边界。
核验日期与时效边界
本文于 2026 年 10 月 2 日核验。OpenAI、VS Code、OWASP、NIST、操作系统沙箱和研究论文会更新,实施前应重新打开对应一手页面并核对平台、版本和适用范围。本文不构成针对特定组织的渗透测试或合规认证。Bing Webmaster、Search Console、排名、曝光、点击、CTR、访问、用户与转化均未取数;IndexNow、sitemap、爬虫请求和页面可访问性只能作为发现或技术证据。
