ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

NOAA生产部署安全清单:沙箱隔离、密钥管理与审计留痕10条军规

NOAA生产部署安全清单:沙箱隔离、密钥管理与审计留痕10条军规 NOAA生产部署安全清单沙箱隔离、密钥管理与审计留痕10条军规【免费下载链接】labs-OO-AgentsNVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.项目地址: https://gitcode.com/gh_mirrors/la/labs-OO-AgentsNOAANVIDIA Object Oriented Agents是一个 Pythonic 的 AI Agent 构建框架支持让模型生成并执行 Python 代码CodeAct 策略。正因为模型能跑代码、能调工具、能碰文件AI Agent 生产部署安全清单才成为上线前必答的题。本文整理沙箱隔离、密钥管理、审计留痕三大维度的 10 条军规帮助你快速把 NOAA Agent 部署到可信的生产环境。为什么 NOAA 需要一份安全清单在 NOAA 里Agent 的方法本身就是工具普通方法、ShellTools、MCP 客户端都通过self暴露给模型见 docs/concepts/tools-and-visibility.md。CodeAct 策略还会执行 LLM 现场生成的 Python 代码。官方文档的态度非常直接即使提示词可信、模型再强也要把这段执行当作不可信代码来对待见 docs/concepts/safety.md。下面 10 条军规就是围绕这个前提展开的。一、沙箱隔离篇把模型关进笼子里军规 1真正的边界在 Python 进程之外NOOA 内置了静态检查器——UnifiedCodeValidator会拦截exec、eval、危险 dunder 访问、受限导入等写法源码见 src/nooa/runtime/code_validator.py模块级 deny-list 由 src/nooa/runtime/restrictions.py 统一维护。但源码注释里写得很明白这些校验器是guardrails护栏不是 security boundary安全边界。静态 Python 检查器挡不住importlib动态加载、反射和 C 扩展。真正的收容边界是操作系统级隔离——容器、虚拟机或 NVIDIA OpenShell。✅ 部署动作运行 CodeAct 类 Agent 的进程必须跑在容器/VM 里而不是宿主机上裸跑。军规 2文件、网络、凭据给到够用就好官方安全检查清单里第一条就是Agent 是否只拥有它需要的文件、网络和凭据具体做法只挂载当前任务目录限制只读/可写范围网络用 allow-list默认拒绝出站容器内不注入无关的 API Key 和环境变量限制 CPU、内存与墙钟时间。注意一个常见误区ShellTools(cwdjob_dir)只是设置起始目录run()拉起的是普通 shell可以用绝对路径逃逸。官方明确提醒用 OS 挂载或沙箱限制文件系统而不是靠cwd。军规 3能力最小化别给万能接口生成代码可以调用所有可见方法和工具所以给 Agent 的表面越小越好优先提供read_customer(customer_id)这样的窄方法而不是裸数据库连接有状态工具按实例构造在__init__里self.shell ShellTools(...)每个 Agent 实例独立一套会话与状态任务之间互相隔离隐藏管理、删除、凭据类操作读写权限不同的能力要拆开。军规 4提示词管不了资源必须在外层设限生产运行器要在模型提示词之外设置执行超时、最大模型轮数与重试预算、输出与 trace 保留上限、显式取消和子进程清理、关键写操作的人工审批。提示词里的请遵守限制只是解释政策不具备强制力。超时和取消必须落在 runner 代码里。二、密钥管理篇让模型看不见任何秘密军规 5把秘密挡在模型可见状态之外NOOA 提供hidden注解实现在 src/nooa/_visible.py把 API Key、内部客户端从 Agent 的文档化表面中移除字段加Annotated[Type, hidden]方法加hidden对外只暴露一个执行唯一授权操作的窄方法例如lookup_customer(customer_id)底层凭据调用全部藏进私有方法。再强调一遍官方立场隐藏只能把值从文档表面拿掉生成代码仍可猜测私有名——授权必须靠最小权限凭据 进程隔离来兜底。军规 6secrets.yaml 分层加载且已存在不覆盖NOAA 的密钥走统一配置故事secrets.yaml与llm_config.yaml同目录分层发现env:映射里的名字会注入os.environ实现见 src/nooa/secrets.py。两条生产要点不覆盖non-clobberingshell 里已export的值永远优先适合用 CI/CD 注入的 Secret 覆盖文件默认值落盘即原子write_secret_env以属主独占权限原子写入且校验变量名与 YAML 合法性坏文件绝不半写。军规 7trace 出口前自动脱敏最容易被忽视的泄露点密钥被写进了遥测 span 里。NOOA 内置SecretScrubSpanProcessorsrc/nooa/tracing/_secret_scrubber.py在 OTel span 导出前拦截用高精度正则把api_key、authorization、access_token、client_secret等属性值替换为[REDACTED]同时覆盖 provider 侧的加密回放状态字段。✅ 部署动作任何自建 OTLP/自定义 exporter 的链路都要确认脱敏处理器在导出管道里别把脱敏留给日志采集端碰运气。三、审计留痕篇每一步都可回放、可追责军规 8无人值守任务必须写持久化 trace开发时 viewer 自动接收 trace 很方便但测试、基准和无人值守运行要显式配置文件 exporterenable_tracing(exporters[exporters.jsonl(traces)])flush_traces()见 docs/concepts/tracing.md 与 src/nooa/tracing/exporters.py。JSONL 轨迹可以归档、可导入 viewer、也可被其他 OpenTelemetry 工具消费评估场景记得设置稳定的 session ID 关联文件与任务。军规 9审计范围要覆盖整棵调用树NOOA 的 trace 记录的是程序调用树而不仅是发给 LLM 的消息。常见 span 类型Span审计含义method.name一次 Agent 方法调用generation一次策略执行litellm.acompletion一次模型供应商调用code_execution一个 CodeAct 生成的 Python 代码块method_call.name生成代码回调了另一个 Agent 方法tool_execution.tool一次外部工具调用发生安全事件时你能精确回答哪段生成代码、调了哪个工具、产生了什么输出。注意区分events 是给模型看的对话记忆trace 是给运维看的执行记录——审计只认 trace。军规 10外部效果要用确定性代码验证模型声称完成了不算数。外部效果文件系统状态、测试结果、数据库写入、API 响应、权限与策略检查必须由 Python 代码验证后才接受或持久化例如生成候选 → 跑pytest -q→ 失败即抛异常拒绝。这是审计链条的最后一环没有验证证据的步骤在事后追责时就是黑盒。上线前 5 分钟自检清单把官方 Safety 清单浓缩为一张表贴在部署手册里#检查项对应军规1生成代码跑在 OS 级沙箱内1、22Agent 只有它需要的文件、网络、凭据2、33密钥和管理 API 已隐藏或根本不存在5、64有状态工具按任务隔离35不可信输入作为数据而非提示词指令传入36外部声明经过验证才接受107runner 能超时、取消、清理48持久化 trace 可供复盘8、9延伸阅读docs/concepts/safety.md、docs/concepts/tracing.md、src/nooa/runtime/sandbox/、src/nooa/tracing/。安全从来不是模型足够聪明就能省掉的环节。把这 10 条军规落到容器编排、配置模板和 CI 检查里你的 NOAA Agent 才敢真正上生产。【免费下载链接】labs-OO-AgentsNVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.项目地址: https://gitcode.com/gh_mirrors/la/labs-OO-Agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表