跳转到主要内容

智能体凭据轮换:尚未被映射到 AI 领域的 DevOps 难题

阅读需 2 分钟Tian PanTian Pan

每个 DevOps 团队都有一套凭据轮换政策。大多数团队已经针对其服务、CI 流水线和数据库实现了自动化。但当你部署一个持有跨五个不同集成的 API 密钥的自主 AI Agent 时,那套轮换政策就变成了一个地雷。Agent 正在执行任务中——分拣 Bug、更新工单、发送 Slack 通知——突然它的 GitHub 令牌过期了。进程看起来很健康。日志显示没有崩溃。但无声无息地,一切都不再起作用了。

这是无人从 DevOps 映射到 AI 的凭据轮换问题。传统的轮换假设工作负载是可预测的、由人管理的,并且具有清晰的边界。自主 Agent 打破了每一个这样的假设。

为什么传统的轮换会破坏 Agent

传统基础设施中的机密轮换遵循一个简单的生命周期:配置凭据、在固定期限内使用、按计划轮换、撤销旧凭据。这之所以有效,是因为传统服务具有可预测的生命周期并能优雅地重启。Web 服务器在下一次连接时获取新的数据库密码。CI 任务在每次运行开始时获取新鲜的凭据。

AI Agent 在三个方面打破了这一模型。

首先,Agent 会同时积累跨多个服务的凭据。一个单一的代码 Agent 可能会同时持有 GitHub、Jira、Slack、云提供商和内部 API 的令牌——每个令牌都有不同的过期窗口。GitHub 令牌大约在 8 小时后过期。Google 令牌 1 小时后过期。Slack 令牌 12 小时后过期。没有统一的过期信号,也没有可以处理的单一轮换事件。Agent 正在管理一个具有独立生命周期的凭据组合。

其次,Agent 是长期运行且有状态的。许多 AI SDK 在初始化时需要凭据,从而产生了在整个执行过程中持久存在于进程内存中的长效机密。当轮换在外部发生时——例如,Vault 轮换了 GitHub 令牌——Agent 仍然持有旧的令牌。它将继续使用失效的凭据直到发生故障,而这种故障通常表现为静默的自动化中断,而不是干净利落的错误。

第三,Agent 在不可预测的任务边界上自主运行。人类开发者知道他们何时开始新任务并可以重新进行身份验证。处于多步骤工作流中间的 Agent——关联日志、查询指标、起草事后分析报告——没有刷新凭据的自然边界。在任务中途中断它以重新验证身份会有数据丢失或状态不一致的风险。

静默失败问题

在 Agent 系统中,凭据过期最危险的方面不是失败本身,而是这种失败的隐形性。当 OAuth 访问令牌在持续运行期间过期时,API 请求开始静默失败。Agent 进程报告正常。编排器没有看到崩溃。但诸如 Bug 分拣、工单创建和通知路由之类的工作流直接停止运作。

如果没有专门的监控,这种故障可能会在数小时内都不被察觉。在一种常见的模式中,团队只有在用户报告 Bug 报告不再转换为 GitHub Issue,或者 Slack 警报变安静时才会发现问题。Agent 一直在运行——它只是失去了执行任何有用操作的能力。

这从根本上不同于服务停机。崩溃的服务会触发警报。一个带有过期凭据的运行中的 Agent 从外部看是正常的。这在运维上相当于一台电源已开启但镜头盖没取下的安全摄像头。

Agent 规模下的凭据扩张

这个问题的规模正在迅速增长。GitGuardian 2024 年的研究发现,仅在一年内,公共 GitHub 提交中就有超过 1,270 万个硬编码机密,其中管理不善的环境变量是主要来源。AI Agent 使情况变得更糟,因为它们会自动从配置文件、环境变量和日志中摄取凭据,而用户并没有明确的意识。

每一个工具集成都会使攻击面成倍增加。IDE 集成暴露了包含会话令牌的 Git 分支、本地文件和工作区元数据。云和 API 访问需要用于 CI/CD 流水线、内部 API 和机密检索系统的凭据——形成了每一步都需要不同密钥的依赖链。Model Context Protocol (MCP) 服务器各自维护独立的身份验证逻辑,使插件间的凭据需求成倍增加。

结果就是凭据扩张——凭据在 Agent 的操作面上迅速累积和重叠。与知道自己在使用哪些密钥的人类开发者不同,Agent 可能无法区分它在环境变量中发现的生产数据库凭据和配置文件中留下的测试密钥。

真正有效的模式

行业正在趋向于一套在不同成熟度水平上解决 Agent 凭据管理的模式。正确的选择取决于你的威胁模型和操作复杂性。

即时 (Just-in-time) 凭据配置。 与其预先为 Agent 加载长效机密,JIT 配置会根据需求创建凭据,范围限定在特定任务,并在任务完成后注销。Agent 请求访问,身份编排层配置一个短效令牌(分钟级,而非小时级),凭据在使用后自毁。

这完全消除了轮换问题——你不需要轮换那些会自动过期的东西。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

安全智能体如何跨过那行它“看不见”的注释,升级了被固定的依赖

两个 AI 编程智能体因为互不知道对方的存在,向欧洲客户发布了一个差一错误(off-by-one)的日期 Bug。这是一份关于将代码库中的多智能体协作视为分布式系统问题的实战指南。

insider
ai-agents
阅读需 12 分钟

当你的 CLI 开始说英语:可提示基础设施的最小权限原则

当你的 CLI 开始接受英语时,最小权限原则就失效了。每一个将意图转化为命令的封装层都变成了一个“混淆代理”。目前行之有效的模式包括:锚定已解析计划的意图绑定令牌、强制性模拟运行(dry-run)以及将提示词与动作图关联起来的审计追踪。

insider
security
阅读需 9 分钟

智能体临时目录:无人盘点的无主文件系统 PII 暴露面

智能体工作线程在无人分类的磁盘上累积了临时文件系统状态——提取的 PDF、转录的音频、缓存的附件。解决方案在于为这一层级命名,而非追求架构上的复杂性。

insider
ai-agents
阅读需 10 分钟

你的智能体在链式工具调用中获得的 OAuth 权限范围

OAuth 授权将智能体视为单用途应用,但每一次链式工具调用都扩张了审计日志必须解释的实际权限。那种一次性的授权界面将最坏的情况简化为了单一的决策。

insider
oauth
阅读需 10 分钟

当实习生在入职第一天部署 Agent

新员工入职走的是按工龄递增的权限曲线;而他们配置的 Agent 在第三天就拿到了生产级别的权限。安全评审、工具注册表与计费桶之间那条没有归属的缝隙,正在变成下一轮事故的温床。

ai-agents
iam