新闻详情

新闻详情

首页 / 资讯中心 / 详情

零密钥的工作负载身份:nono集成SPIFFE/SPIRE完整教程

发布时间:2026/9/26 2:57:06来源:尧图网络
零密钥的工作负载身份:nono集成SPIFFE/SPIRE完整教程
零密钥的工作负载身份nono集成SPIFFE/SPIRE完整教程【免费下载链接】nonoagent runtime security - zero trust, zero setup, zero latency.项目地址: https://gitcode.com/gh_mirrors/non/nononono 是一款面向 AI Agent 的开源零延迟沙箱主打零信任、零配置、零延迟运行。而它的 SPIFFE/SPIRE 工作负载身份集成让沙箱内的 Agent 和工具在访问 API 时完全不需要密钥nono 启动时连接本地 SPIRE Agent按需获取短生命周期的 JWT-SVID 并自动注入请求头被沙箱化的进程只发出一个普通 HTTP 请求从头到尾都接触不到任何凭据。为什么选择工作负载身份把密钥彻底移出沙箱传统做法是把 API Token 写进配置文件、环境变量或密钥库keystore。问题是Agent 本身就运行在沙箱里而它恰恰是你最不放心的那一方——一旦凭据暴露给它提示注入或失控行为都可能把密钥带出去。SPIFFESecure Production Identity Framework For Everyone用一种更优雅的方式解决这个问题SPIFFE ID一个类似spiffe://example.com/nono-supervisor的身份标识由信任域Trust Domain统一签发SVIDSPIRE 签发的短期凭据JWT 或 X.509 证书几分钟就过期泄露也几乎没用工作负载认证SPIRE 根据进程的真实属性UID、Pod 信息、云实例身份等自动颁发身份全程无需存储任何长期密钥nono 目前支持JWT-SVID每次请求前获取一个新令牌注入为 Bearer 头刷新由 SPIRE Agent 缓存处理。工作原理一张图看懂凭据注入链路先理解一个关键事实注册进 SPIRE 的工作负载是 nono 监督进程supervisor而不是沙箱内部的那个进程。从图中可以看到内核沙箱边界Kernel Sandbox Boundary上方是可信区操作系统内核、nono 二进制在 exec 前应用沙箱、你显式授权的路径下方是不可信区被执行的 Agent 命令、它派生的所有子进程、它加载的库和发起的网络连接。这意味着沙箱内的进程根本摸不到 SPIRE 的 Agent socket更没有凭据可见性。整个链路如下nono 监督进程通过 Workload API 连接本地 SPIRE Agent socket出站请求先经过 nono 本地代理代理按配置获取 JWT-SVID以Authorization: Bearer jwt形式注入沙箱进程只感知到一个普通的出站请求对凭据的存在毫不知情这条注入链路的实现位于 crates/nono-proxy/src/spiffe.rs令牌以内存清零zeroize方式处理到期前自动刷新SPIRE 下发的 JWT 密钥材料绝不落盘、不进日志。快速上手三步完成 SPIFFE 集成第一步准备 SPIRE Server 与 Agent大部分运维工作在 SPIRE 侧运行 server 和 agent、写认证策略、注册工作负载。nono 的配置文件里只需要一个 socket 路径。仓库自带了本地演示配置可以直接参考Server 配置testdata/spire/server.conf信任域test.nonoJWT TTL 5 分钟Agent 配置testdata/spire/agent.conf启用unix工作负载认证器第二步注册工作负载条目告诉 SPIRE满足什么条件的进程可以拥有哪个 SPIFFE ID。本地环境用unix:uid选择器最直观spire-server entry create \ -spiffeID spiffe://example.com/nono-supervisor \ -selector unix:uid:$(id -u)不同环境的认证方式各由 SPIRE 负责nono 完全无感知同一个 profile 在任何 SPIFFE 环境都通用环境SPIRE 认证方式Linux / macOSunix:uid内核 SO_PEERCREDKubernetesPod UID、命名空间、ServiceAccount 标签AWS EC2实例身份文档GCP / Azure实例元数据第三步在 nono profile 中声明 SPIFFE 凭据在 profile 的网络凭据里加一个spiffe块即可与credential_key互斥{ network: { credentials: [my-api], custom_credentials: { my-api: { upstream: https://api.internal.example.com, spiffe: { type: jwt, workload_api_socket: /var/run/spire/sockets/agent.sock, audience: [https://api.internal.example.com], inject_header: Authorization } } } } }完整字段说明与官方文档见 docs/cli/features/spiffe.mdx。两种配置模式直注 Bearer 还是 OAuth2 换令牌根据上游 API 的鉴权方式nono 提供两个互斥的配置面模式一spiffe块JWT-SVID 直注适用于直接接受 JWT 作为 Bearer Token的上游。nono把令牌原样注入请求头无任何交换过程。可通过inject_header更换目标头用credential_format{}为占位符自定义值格式。模式二auth.client_assertionJWT-SVID 换 OAuth2 令牌适用于OAuth2 令牌端点接受jwt-bearer断言的上游Anthropic API 即属此类。此时用client_assertion字段替代spiffe块auth: { token_url: https://api.example.com/oauth/token, client_assertion: { type: spiffe_jwt, workload_api_socket: /var/run/spire/sockets/agent.sock, audience: [https://api.example.com] } }关键差异JWT-SVID 本身成为客户端凭据——不再需要client_id和client_secret。nono 自动完成交换、缓存 OAuth2 访问令牌直到临期并把换到的访问令牌而非裸 JWT-SVID注入上游请求。常用字段速查字段说明workload_api_socketSPIRE Agent socket 路径唯一必填的环境相关项audience签发 JWT-SVID 的受众inject_header注入的请求头默认Authorizationcredential_format值格式串{}被令牌替换默认Bearer {}svid_hintAgent 返回多个 SVID 时指定使用哪一个 SPIFFE IDSocket 路径速查表workload_api_socket是唯一需要按环境调整的字段。填错了也不怕——nono 在启动时就连不上 socket 会直接失败配置错误立即可见不会静默降级平台典型路径Linux/var/run/spire/sockets/agent.sockmacOS本地安装/tmp/spire-agent/public/api.sockKubernetesSPIFFE CSI 驱动/run/spiffe/sockets/agent.socknono 自动帮你处理的事项集成 SPIFFE 后以下安全细节全部自动化无需人工干预✅启动即验证连接 Workload APIsocket 不可达立即失败fail-closed✅凭据注入自动获取并注入正确的凭据JWT-SVID 或 OAuth2 换得的令牌✅后台轮换SVID 到期前自动刷新无需重启进程、无凭据中断✅内存清零JWT 令牌在释放时对内存清零✅令牌体检拒绝已过期exp或未生效nbf的令牌及时提示检查 SPIRE TTL 与系统时钟漂移SPIRE 运维者只需负责运行 server/agent、注册工作负载条目、为 JWT 路由配置 OIDC 发现端点让上游无需了解 SPIRE 即可验签或为client_assertion流程配置联邦规则。本地复现一条脚本跑通全流程仓库提供了开箱即用的集成测试脚本 scripts/spire-test.sh它会自动完成下载 SPIRE 1.9.6 二进制幂等已存在则复用基于 testdata/spire/server.conf 与 testdata/spire/agent.conf 启动 server 和 agent生成 join token、注册spiffe://test.nono/nono-proxy工作负载条目运行三层测试crates/nono-proxy/tests/spiffe_integration.rs代理层凭据获取与 fail-closed 验证crates/nono-cli/tests/spiffe_run.rs端到端验证——起一个 mock HTTP 服务经真实nono run -- curl ...断言请求头中确实注入了 JWT-SVID在 Linux 上执行即可复现./scripts/spire-test.sh总结nono 的 SPIFFE/SPIRE 集成把Agent 访问 API 需要密钥这个问题从根上消灭了密钥从未存在过——身份由 SPIRE 根据进程真实属性签发令牌几分钟即失效沙箱进程全程零可见性。你只需要在 profile 里填一个 socket 路径其余的注入、轮换、清理全部自动完成。对于在生产环境大规模运行 AI Agent 的团队这正是零信任工作负载身份最落地的形态。更多细节可查阅官方文档 docs/cli/features/spiffe.mdx 与网络功能说明 docs/cli/features/networking.mdx。【免费下载链接】nonoagent runtime security - zero trust, zero setup, zero latency.项目地址: https://gitcode.com/gh_mirrors/non/nono创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

科研低谷期自救指南:从自我否定到重启行动 2026/9/26 3:35:53

科研低谷期自救指南:从自我否定到重启行动

1. 先别急着“振作起来”,低谷期其实是个信号灯科研这条路,走的年头越长,越会发现它不是一个线性上升的过程。你可能昨天还觉得自己能发一篇好文章、能解决那个卡了三个月的问题,今天看到同门或者同领域的进展,就被一股…

阅读更多 →
Flask+SQLite图书管理系统源码解析:从跑通到二次开发 2026/9/26 3:35:53

Flask+SQLite图书管理系统源码解析:从跑通到二次开发

简介:这是一套面向Python初学者与课程设计需求的图书管理系统完整项目源码,采用Flask框架结合数据库实现图书的增删查改、借阅归还及用户权限管理,适合作为毕业设计、课程作业或Web开发练手参考。压缩包共2000个文件,约6.28MB&…

阅读更多 →
用 mdbook + Rust 打造 Markdown 书籍:TaoToken 统一 Key 配置与本地预览验证 2026/9/26 3:35:53

用 mdbook + Rust 打造 Markdown 书籍:TaoToken 统一 Key 配置与本地预览验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenClaw(原Clawdbot)2026年小白部署攻略:TaoToken 统一 Key 配置与阿里云验证 2026/9/26 3:35:53

OpenClaw(原Clawdbot)2026年小白部署攻略:TaoToken 统一 Key 配置与阿里云验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenClaw 对话系统自定义知识库配置与更新机制:TaoToken 统一 Key 接入实践 2026/9/26 3:35:46

OpenClaw 对话系统自定义知识库配置与更新机制:TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GNN图神经网络核心原理与PyG实战:从消息传递到节点分类 2026/9/26 3:35:39

GNN图神经网络核心原理与PyG实战:从消息传递到节点分类

简介:这是一份以图神经网络为核心的完整代码资源,面向具备一定深度学习基础、希望入门或进阶GNN的开发者与研究人员,可用于解决图数据建模、节点分类与嵌入表示学习等问题。资源包为ZIP格式,共323个文件,绝大多数为JSO…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉