基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
开源项目2026-11-01 00:09

agentshield 用关系图追踪 Agent 权限漂移

dev.to · AI#Agent#安全#开源
Editor brief · 编辑速览

Solo.io 开源的 agentshield 将工作负载、身份和策略组织成关系图,识别网络策略放宽、服务身份变化等可能新增访问路径的变动。工具仅提出待人工批准的修复建议,文章还从源码检查模型调用时机及其权限边界。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

给 AI Agent 配好沙箱、收紧出站网络,只能说明部署时边界成立。后来有人放宽了 NetworkPolicy、换了 ServiceAccount,或者让流量走向新的目标,原来的隔离结论还算不算数?Solo.io 的 agentshield 盯的就是这些变化。

它把资源、身份、策略和流量放进同一张图,用规则发现新路径,再让人审核修复方案。值得程序员借鉴的是模型在这条链路里的位置:检测不必经过模型,模型参与时也要拿证据。不过,原文对默认行为和实测范围存在矛盾,需要分开看。

配好沙箱之后,为什么还要持续检查边界

据原文介绍,Solo.io 于 2026-10-22 发布 agentshield,采用 Apache-2.0 许可。作者此前讨论过默认拒绝出站、移除隐式可用的凭据、保留审计日志,以及通过 agentgateway 配置边界。新工具补的是后续变化的监控。

问题不只出在 Agent 自己。部署时临时放宽的网络策略忘了恢复,工作负载获得了新身份,Istio waypoint 开始转发到陌生目标,都可能让原先不存在的路径出现。

agentshield 从五类来源构建关系图:Kubernetes、Istio、Cilium、agentgateway 和 AWS。Kubernetes 侧涵盖工作负载、RBAC、NetworkPolicies、准入配置等,每种资源类型共用一个 informer;AWS 侧覆盖 EC2、ENI 和 Security Groups,还可通过 EventBridge、SQS 接收 CloudTrail 变更事件。

这张图不只是资产清单。它要连接「谁运行、用什么身份、受哪些策略约束、能去哪里」,帮助定位新路径由哪次变化产生。

图数据存入 Postgres,以带版本的贡献记录原子替换,并提供有序变更流。每条事实还记录来源插件、规则和观测记录。后面无论是规则报警还是模型调查,都有出处可查。

实际流量也会进入图:Istio waypoint 访问日志通过 OTLP/HTTP 接入,AWS VPC Flow Logs 通过 Firehose 接入;原始事件落到 JSONL 或 ClickHouse,每分钟汇总为 communicates-with 关系。

但接入有具体门槛。Istio 需要自定义 envoyOtelAls 扩展提供者,输出 agentshield.* 属性;示例还把所有调用方标成 Deployment,其他工作负载类型的流量在调整配置前会被拒绝。能读取资源,不代表已经正确识别了所有流量。

为什么检测规则要走在模型前面

agentshield 最值得借鉴的设计,是让确定性检测独立于模型运行。

内置检测器关注新增暴露、治理约束丢失、策略变化、新 RBAC 绑定,以及工作负载访问此前没去过的目标。它还会排除常规发布和扩缩容,减少日常变更造成的噪声。用户可以补充 CEL 规则,规则支持激活审计和热重载。

下面这条规则用于识别尚未分类的公网目标,作者称已对照项目测试夹具确认其形式:

Expression: "destination_ip_class == 'public' && destination_role == ''"

要看的是 destination_role == '':公网地址本身不足以触发这条规则,还要满足目标角色尚未归类。原文说,这类发现标为中风险,原因标签是 new_public_destination。

destination_ip_class 也不是原始 IP。作者检查事件 schema 后指出,该字段只暴露粗粒度地址类别。这样可以减少这个检测字段携带的信息,但不能据此推断整套日志都不保存地址,因为原文没有给出那样的保证。

模型通过两个默认关闭的参数启用:

  • --agentic-investigation:通过六个只读 MCP 图查询工具调查新路径、新暴露等信号,可以把信号提升为发现。它使用独立的采样队列,模型慢或失败不会拖住检测。
  • --deployment-rule-authoring:经过基线观测窗口后,为每个 Kubernetes Deployment 的每次 Pod 模板修订草拟规则。规则先进入影子模式,经人批准才启用。

影子模式可以理解为先观察规则会命中什么,暂不把草稿直接投入正式检测。

原文还描述了模型发现的证据门槛:引用必须来自图实际返回的事实和证据,至少包含一个中风险或更高风险信号;底层资源变化后,相关发现立即失效。它限制了模型凭空下结论的空间,但证据可追溯仍不等于判断一定正确。

修复先预演,试用也要分清演示和验证

发现问题后,agentshield 可以提出 Kubernetes NetworkPolicy、CiliumNetworkPolicy 或 Istio STRICT PeerAuthentication 修复方案。人先准备变更,生成计划并向真实准入控制器执行 dry-run,再明确批准,工具随后验证结果。

dry-run 能检查变更是否会被接纳,不能证明业务一定不受影响。插件会声明支持的操作,影响范围阈值也参与执行约束。按原文描述,工具不会自行发起封堵。

README 给出的最快体验入口是:

make demo

要留意的是 demo:原文称它会执行 ui/pnpm install,启动 Vite 开发服务器,连接浏览器里的模拟后端。访问 http://127.0.0.1:5173 后,可以选择场景、触发观测、准备和批准修复,再重置环境。这个过程不需要 Go 二进制、数据库、集群或模型,适合看懂交互流程。

它不能证明真实集群的采集和修复已经跑通。

原文开头声称演示仓库和全部命令发布前都运行过,后面却明确说本次会话因沙箱限制,没有运行构建和开发服务器。作者明确列出的验证,是克隆仓库,阅读 pkg/detector/ 中的检测器、事件 schema、CEL 编译代码和测试夹具。因此,规则形式有源码核对依据,演示运行情况则存在自相矛盾的叙述。

我的判断

我认可它把检测、调查和执行分开的方向。相比让模型判断每一次变更,规则更容易复查;相比人工逐份重读 NetworkPolicy,关系图和变更流更适合追踪跨资源影响。

但原文没有给出误报率、漏报率、规模测试或运维成本对照。所谓更有纪律,首先是架构判断,还不是效果结论。排除扩缩容能否准确、基线窗口如何选择,都需要验证。

另一个矛盾直接影响试用:前文说激活规则命中会直接形成发现,FAQ 也重复了这一点;中间却说两个模型参数都不开,就没有任何发现和修复提案。这两种描述无法直接兼容。不能据此断言默认启动就能获得完整告警,也不能断言关闭模型必然失去规则检测。

项目仍是 pre-1.0,API、数据库 schema 和参数预期会发生破坏性变化。Web UI 与 HTTP API 默认没有认证,只绑定 loopback。直接把管理入口暴露出去,会改变它原先依赖的访问边界。

对只维护前端页面、没有集群治理需求的团队,它暂时不够贴近。对已经运行 Kubernetes 和相关网络组件的团队,它才有更明确的评估价值。

能拿来做什么

  • 如果团队在 Kubernetes 中运行 Agent 服务,可以先选测试环境,验证一次策略放宽或 ServiceAccount 变化能否被采集、关联并解释清楚,同时核对关闭模型时是否仍有规则发现。
  • 如果只是想理解操作流程,可以用 make demo 体验从发现到批准的过程,把模拟演示结果与真实集群验证分别记录。
  • 如果正在开发 AI 运维助手,可以参考它的职责划分:规则负责稳定条件判断,模型通过只读工具调查,结论附带证据,执行另设审核入口。
  • 如果准备试用管理界面,应先维持 loopback 访问范围;需要远程访问时,先解决认证和访问控制,再考虑扩大使用范围。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
一次队列校验失误如何引发推理缓存泄露
下一篇
TornadoVM 自建编译器应对 JVMCI 移除

资讯速览

dev.to · AI · 2026-11-01 00:09

AI 评分 8.0 / 10

相关标签

#Agent#安全#开源

继续阅读

  • 用GitHub议题分流串起Agent落地
  • 一次队列校验失误如何引发推理缓存泄露
  • TornadoVM 自建编译器应对 JVMCI 移除
  • 跨天运行的 Agent 如何管理记忆与任务
  • 给 Agent 数据源加上质量契约