生产 Agent 的密钥和凭据边界:不要让模型直接碰 API Key

AI Agent敏感凭据防泄漏网关:从Prompt约束到架构兜底的实战设计 随着AI Agent在企业知识库与自动化场景中的深入应用,大模型对话链路中的敏感凭据泄漏风险日益突出。传统依靠Prompt指令约束模型“不许泄露”的方式,本质上仍是概率性引导,难以抵御多轮诱导、编码绕过等攻击。安全边界必须前移并固化在代码层或代理层,形成确定性检测与处置能力。这类场景通常需要具备低延迟、可编排和高扩展性的后端框架,以及能支撑配置、值守与态势呈现的多端联动界面。基于FastAPI构造的检测引擎,可整合正则匹配、熵值分析和上下文聚合策略,对入站提示词、工具返回结果与出站响应实施实时扫描,并对命中 阅读详情

生产 Agent 的密钥和凭据边界:不要让模型直接碰 API Key

很多团队给 Agent 接工具时,会先解决“模型怎么调用外部系统”。下一步很容易被忽略:这些外部系统的凭据到底在哪里,谁能拿到,出了事怎么撤回。

如果做法是把 API Key、数据库连接串、云账号 token 或 SaaS 访问令牌放进环境变量,然后让工具适配器随便取,短期 demo 能跑,生产风险会很高。

生产 AI Agent 系统里,模型不应该直接接触密钥。更准确地说,模型只能提出“要做什么”,凭据的选择、权限、有效期、审计和撤销,应该由代码层的工具代理和策略层处理。

凭据问题为什么比普通后端更敏感

传统后端服务也会用密钥,但调用路径通常比较稳定:哪个服务调用哪个接口,权限范围、调用频率和错误模式都相对可控。

Agent 不一样。它的动作来自模型推理、用户输入、检索上下文和工具返回结果的组合。一次看似普通的任务,可能经过多轮计划、改写、重试和降级,最后触发一个真实写操作。

这里有三个典型风险:

  1. 提示词或上下文泄露
    如果工具说明、错误信息或调试日志里带出密钥,模型可能把它写进回答、记录或后续工具参数。

  2. 权限被工具间接放大
    Agent 本来只需要查工单,却通过某个通用工具拿到了客户、订单、财务或云资源的更大权限。

  3. 出事后无法快速收口
    没有 token 版本、租户范围、调用 trace 和撤销机制,团队只能轮换一批大权限密钥,影响范围很难判断。

这不是“模型会不会作恶”的问题,而是生产系统应该默认任何自动化链路都可能被误用、注入、重试放大或被错误上下文带偏。

推荐架构:模型拿 action,工具代理拿凭据

一个更稳的结构是把模型、策略层、工具代理和凭据系统拆开:

模型提出动作

策略层校验

工具代理

凭据代理 / Vault

业务系统

人工审批

审计 trace

模型输出的是候选动作,例如:

{
  "tool": "ticket.update_status",
  "args": {
    "ticketId": "T-48291",
    "status": "pending_close"
  },
  "evidenceIds": ["msg_781", "kb_rule_17"]
}

这里不应该出现真实密钥。工具代理根据租户、工具、风险等级、审批状态和证据链,去凭据代理里换取一个短期、最小权限、可审计的访问能力。

不要把 secret 当作普通配置

建议把工具配置分成两层。

第一层是可以被模型看到的工具契约:

  • 工具名称;
  • 能做什么;
  • 必需参数;
  • 风险等级;
  • 需要哪些证据;
  • 是否需要人工审批;
  • 可能失败的原因。

第二层是模型永远看不到的执行配置:

  • secretRef;
  • 凭据版本;
  • 租户范围;
  • 目标系统 allowlist;
  • token TTL;
  • 调用限额;
  • 网络出口策略;
  • 审计保留周期。

例如:

type ToolPolicy = {
  name: "ticket.update_status";
  visibleToModel: {
    description: string;
    requiredArgs: string[];
    requiredEvidence: string[];
    riskLevel: "internal_write";
  };
  executionOnly: {
    secretRef: "vault://prod/helpdesk/write-status";
    tenantScope: "current_tenant_only";
    tokenTtlSeconds: 300;
    maxCallsPerTrace: 1;
    egressAllowlist: ["helpdesk.internal"];
    approvalRequired: true;
  };
};

关键点是:模型可以知道“这个工具需要审批”,但不应该知道密钥在哪里、密钥长什么样、可以访问哪些内部地址。

凭据要按动作分级,不要按系统分级

很多事故来自一个过大的“系统级 token”。例如给 Agent 一个 CRM token,然后靠 prompt 约束它只查客户资料。这个边界太软。

更好的做法是按动作拆权限:

动作类型凭据策略生产建议
只读查询短期 token + 租户限制可自动执行,但要记录 query 摘要
草稿生成无外部写权限可以让 Agent 生成建议,不直接提交
内部写入幂等键 + 审批或灰度先在低风险对象上放权
对外副作用人工确认 + 延迟撤销窗口默认不让模型直接执行
云资源 / 数据库管理独立通道不作为普通业务 Agent 工具开放

这套分级比“Agent 有没有权限调用 CRM”更有用。生产里真正要问的是:它能不能读、能不能写、能不能对外发送、能不能改配置、能不能批量执行。

trace 里要记录凭据引用,不记录密钥

审计需要能还原调用链,但不能把密钥写进日志。建议 trace 里记录这些字段:

{
  "trace_id": "tr_20260711_0930",
  "span_name": "credential.issue",
  "tool_name": "ticket.update_status",
  "secret_ref": "vault://prod/helpdesk/write-status",
  "secret_version": "v17",
  "tenant_scope": "tenant_42",
  "token_ttl_seconds": 300,
  "policy_result": "approval_required",
  "approval_id": "appr_8841",
  "issued": true
}

这里记录的是 secretRef 和版本,不是 secret value。排障时团队能知道当时用了哪类凭据、哪个版本、哪个租户范围、是否经过审批。即使日志泄露,也不会直接泄露真实 token。

Prompt injection 要按凭据边界处理

只靠“忽略用户要求泄露密钥”的提示词不够。

用户输入、网页内容、知识库文档、邮件和工单备注都可能夹带指令。生产系统应该假设模型会读到恶意文本,因此敏感动作必须由策略层挡住。

一个简单的防线可以这样写:

function canIssueCredential(request: ToolRequest, context: AgentContext) {
  const policy = toolPolicies[request.toolName];

  if (!policy) return deny("unknown_tool");
  if (!context.tenantId) return deny("missing_tenant_scope");
  if (request.args.includesSecretLikeValue) return deny("secret_in_args");
  if (!hasRequiredEvidence(request, policy.visibleToModel.requiredEvidence)) {
    return deny("missing_evidence");
  }
  if (policy.executionOnly.approvalRequired && !context.approvalId) {
    return deny("human_approval_required");
  }

  return allow({
    secretRef: policy.executionOnly.secretRef,
    ttl: policy.executionOnly.tokenTtlSeconds,
    scope: context.tenantId,
  });
}

模型可以被说服,策略层不能被说服。它只看结构化上下文、证据、审批和工具策略。

上线前做一次泄露演练

很多团队有单元测试和回归测试,但没有做过凭据泄露演练。建议上线前至少演练四件事:

  • 如果日志里误写了 token,能不能在 10 分钟内发现;
  • 如果某个工具凭据被撤销,Agent 能不能降级而不是无限重试;
  • 如果某个租户凭据出问题,是否只影响这个租户;
  • 如果用户通过 prompt injection 要求泄露配置,策略层能不能拦截并记录。

演练结果应该进入 runbook。谁负责撤销、谁负责轮换、哪些下游系统需要清缓存、哪些任务要暂停、哪些客户对象可能受影响,都要提前写清楚。

上线前检查清单

把 Agent 接入真实业务系统前,至少检查这些问题:

  • 模型上下文里是否完全没有真实密钥;
  • 工具说明和错误信息是否不会回显 secret;
  • 每个工具是否有 owner、风险等级和 secretRef;
  • 凭据是否按动作和租户分级,而不是一个大 token;
  • 高风险工具是否需要人工审批或灰度放权;
  • token 是否短期有效、可撤销、可追溯;
  • trace 是否记录 secretRef、版本、租户和审批结果;
  • 日志、prompt、工具入参是否有 secret 扫描;
  • 凭据撤销后系统是否会停止重试或降级;
  • 是否做过 prompt injection 和密钥撤销演练。

这些控制不会让 demo 更漂亮,但会决定 Agent 能不能进入客户数据、工单、订单、设备和云资源所在的真实环境。

基于微信小程序的扫码签到系统源码 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。 阅读详情

相关推荐

Argoverse轨迹预测实战:从数据加载到地图API应用全解析

本文详细解析了Argoverse数据集在轨迹预测中的应用,从数据加载到地图API的实战技巧全涵盖。通过具体代码示例展示如何高效处理轨迹数据、实现可视化及基础预测模型,帮助开发者快速掌握自动驾驶轨迹预测的核心技术。特别介绍了Argoverse地图API的深度应用和性能优化经验。

weixin_29182481的博客 236

Flue环境变量与密钥管理:生产环境API Key安全指南

Flue 是一个开源的 Agent 沙箱框架(sandbox agent framework),帮你用 TypeScript 构建可自主干活的 AI Agent。使用 Flue 时,**API Key 与所有密钥都通过环境变量注入**,Agent 代码本身永远不接触密钥。本文是一份面向新手的 Flue 密钥管理指南:从本地 `.env` 配置,到 Node.js 与 Cloudflare Work

gitblog_00149的博客 439

F5 Shape盾JSVMP核心检测点与无限并发Header生成实战(TikTok/航司)

本文深入剖析了F5 Shape盾结合JSVMP技术的核心风控机制,详细解读了其针对浏览器指纹、行为时序等多维度的检测逻辑。通过实战案例,分享了如何通过逆向分析、精准Hook关键检测点,并构建稳定、高并发的请求Header生成方案,以应对TikTok、航司等平台的高级反爬挑战。

weixin_29325007的博客 1007

oh-my-pi API Key 轮询:多密钥堆叠、会话亲和与按凭据退避实战指南

[![oh-my-pi 编程智能体主界面](https://raw.gitcode.com/GitHub_Trending/oh/oh-my-pi/raw/d3924b6aeaa2753a918eea1345545513ed6269c5/assets/hero.png?utm_source=gitcode_repo_files)](https://link.gitcode.com/i/1a85e2

gitblog_00844的博客 866

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程

本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。

rgv234567的博客 496

《计算机网络》课程大作业- 《小区局域网的设计和规划》

8.1首先,在满足用户需求方面,通过详细的需求分析,充分考虑了居民和物业管理的不同业务需求。对于居民,无论是日常的高清视频播放、在线游戏、远程办公还是智能家居设备的连接,网络都能提供稳定的高速带宽支持。从有线网络的千兆以太网技术保障稳定的有线连接,到无线网络采用 Wi - Fi 6 技术确保无线覆盖区域的高速和低延迟,满足了居民多样化的娱乐和生活需求。对于物业管理,安防监控系统的实时数据传输、物业办公自动化系统的流畅运行以及社区信息的及时发布等业务,都有针对性的网络设计。

lisangsimida的博客 2593

launch-your-agent 安全清单:API 密钥卫生、Vault 凭据托管与防 Prompt Injection 的 6 个要点

🔐 本文整理 **launch-your-agent**(Anthropic 官方的 Claude Code skill,帮你把想法变成 Claude Managed Agent 并上线)背后的 6 个安全要点:API 密钥卫生、Vault 凭据托管、防 Prompt Injection 的最小权限设计,新手照做即可安心上线自己的 agent。 ## 先搞清楚:风险藏在哪里? launch-

gitblog_00888的博客 964

全网唯一OpenCyphal/UAVCAN教程(8)libcanard介绍

当Cyphal里,这个结构体代表一条完整的Cyphal消息,之后我们会根据metadata里提供的元信息,其实就是消息ID,调用对应的反序列化函数,将payload还原成具体的Cyphal消息。用于构造一个新的发送队列,原则上一个can物理接口需要分配一个发送队列,如果它们的MTU大小一致,是可以共用一条的。这个库不包含IO层,是平台无关的,意义是没有实现具体的数据收发,仅提供将发送出去的Cyphal消息转成can帧,以及将收到的can帧转成Cyphal消息。返回值是这条消息拆解成的can帧的数目。....

二进制君 2388

OpenConnector连接GitHub实战:API Key凭据配置完整指南

OpenConnector 是一款开源的 AI 智能体连接网关(auth gateway),通过 SDK、CLI、MCP、HTTP 和 OpenAPI 五种方式,把 1,000+ SaaS 服务商接入你的 AI 应用。本文将带你完成 OpenConnector 连接 GitHub 实战:只需一个 GitHub Personal Access Token(API Key 凭据),即可让 AI Age

gitblog_01122的博客 1113

基于最小二乘法(LS)和最小均方误差(MMSE)算法的导频信道估计

导频信道估计在无线通信系统中起着至关重要的作用,它用于估计无线信道的特性,以便在接收端进行正确的信号解调和解码。最小二乘法(LS)和最小均方误差(MMSE)是两种常用的导频信道估计算法,它们在估计精度和计算复杂度之间取得了良好的平衡。首先,我们提取当前的导频符号,然后将接收到的信号与导频符号相乘得到接收导频信号。最小二乘法是一种经典的导频信道估计算法,它通过最小化接收信号与预测信号之间的均方误差来估计信道。下面将详细介绍基于LS和MMSE算法的导频信道估计,并提供相应的MATLAB代码实现。

pytorchCode的博客 676

【全覆盖算法】栅格地图实现布氏单元分解算法+栅格地图实现牛耕Boustrophedon Cellular Decomposition Path Planning

本文先对做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 276

QuantDinger 生产环境加固指南:默认凭据校验、容器只读锁定与网络边界设计

QuantDinger 是一套开源的多租户 AI 交易系统(涵盖加密、股票、外汇的策略研究、回测与实盘/模拟交易),其 Docker 化部署形态决定了生产加固的核心命题:**如何在默认配置一键可用的前提下,把一处疏漏放大为资金损失的隐患降到最低**。本文以 [docs/deployment/PRODUCTION_HARDENING_CN.md](https://link.gitcode.com/i

gitblog_01006的博客 931

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 775

如何安装 Paperclip CLI、配置 PAPERCLIP_API_KEY 并验证凭据有效

这篇文章解决一个具体问题:在 macOS 或 Linux 上安装 Paperclip CLI(GXL 提供的科研文献检索命令行工具),通过 `PAPERCLIP_API_KEY` 环境变量完成认证,并用一条真实查询证明凭据有效。Paperclip 把约 1100 万篇全文论文、21.7 万份监管文档、11 万份临床试验方案和 57.4 万条蛋白质条目暴露为只读虚拟文件系统(`/papers`、`/

gitblog_00002的博客 1120

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Maka Agent 密钥脱敏完全指南:Redaction 机制深度剖析

在 AI Agent 工作流里,模型消息、工具调用结果、错误堆栈都会被写入 append-only 事件日志——而它们里很可能藏着 API Key 或 Bearer Token。Maka Agent(Apache Maka,Incubating)为此设计了一套完整的**密钥脱敏与数据脱敏(Redaction)机制**:从日志持久化、界面展示到流式输出,每一层都有一套专门的脱敏器,确保凭据永不落盘、

gitblog_00138的博客 1074

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LLM Agent Skills 凭据泄露风险剖析与安全边界加固实践

在构建 LLM Agent 应用时,开发者常将 Skills 视为简单的提示词增强工具,却忽略了其背后绑定的文件读取、命令执行等工具权限。一旦权限边界设计不当,模型便可能在正常任务中无意接触环境变量、密钥文件等敏感信息,引发凭据泄露。通过分析 Skill、Agent、Tool 与 MCP 的职责差异,可以理解安全边界本质上是工具调用权限的合理收敛。针对文件系统越权、环境变量注入、提示注入、日志二次泄露及供应链恶意 Skill 等典型路径,工程团队可采用路径白名单、密钥剥离、输出脱敏、沙箱化执行等策略进行有效

weixin_33766168的博客 362

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Vespene凭据安全管理:SSH密钥与Service Login的加密存储实战

Vespene是一个用Python(Django)编写的开源持续交付与构建自动化平台。在真实的生产环境里,构建系统几乎不可避免地要访问代码仓库、服务器主机,这就必须保存 **SSH密钥**、**Service Login账号密码**等敏感凭据。本文将围绕 **Vespene凭据安全管理**,手把手演示如何通过内置的加密存储机制,把 SSH密钥、解锁口令与Service Login密码安全地交给 V

gitblog_00008的博客 814

Hermes Agent Vault 密钥管理实战:凭据注入与权限隔离

在智能体(Agent)开发中,API Key 等敏感凭据的安全管理是生产部署的关键挑战。传统环境变量或配置文件方式存在权限边界模糊、轮换成本高、审计缺失等问题。Agent Vault 通过“引用与实体分离”机制,让 Agent 仅持有凭据引用,由 Vault 在调用时动态注入真实密钥,实现最小权限原则和完整审计。这一方案适用于多工具调用、多 Agent 协作及团队共享部署等场景,有效降低密钥泄露风险。Hermes 框架内置的 Agent Vault 正是这一理念的工程实践,本文详细拆解其设计思路、实操流程与

weixin_33646989的博客 235

CodeWhale密钥安全指南:API Key如何安全存入操作系统Keyring

如果你正在使用 **CodeWhale**——这款用 Rust 编写的开源终端编码智能体(coding agent)——那么你迟早要面对一个问题:**API Key 到底存在哪里才安全?** CodeWhale 的答案是:优先交给操作系统的 Keyring(macOS 钥匙串、Windows 凭据管理器、Linux 密钥服务),并内置一套自动降级机制,让密钥存储既安全又省心。 [![CodeWh

gitblog_01106的博客 655

claude-quickstarts 上手指南:API Key、Bedrock、Vertex 三种凭据场景任选,一条命令连上 Claude

想跑 Claude computer use 演示,第一步就卡在凭据:API Key、AWS 密钥、Google Cloud 该用哪个?本文用 claude-quickstarts 把连接 Claude API 的 3 种凭据场景和启动命令一次讲透。 ## 项目定位:连上 Claude 的第一道门槛,是选对凭据通道 这个仓库不是单项目,而是一组基于 Claude API 构建可部署应用的参考实

gitblog_01194的博客 589

多 Agent 上线配置,重试、超时和密钥统一收口

多 Agent 系统的重试、超时、模型地址和密钥如果散落在代码与 YAML 里,上线时很难确认最终行为。配置收口的目的,是启动前校验、发布时留版本、异常时能回退。可以用 Pydantic 做类型和范围校验,但数值仍要来自任务预算和依赖 SLO。密钥只从受控的 Secret 系统注入,日志中只输出键名与来源。

好代码自己会说话,烂代码才需要注释来圆谎 5031

smolvm 凭据替换(Credential Substitution)实战指南:让 Agent 用得上密钥、却永远读不到密钥

本文介绍 smolvm 的核心安全特性 **凭据替换(Credential Substitution)**:给机器内的工作负载一个它可以用来访问指定 HTTPS API 的密钥,同时保证该密钥的明文**永远不会进入虚拟机、不会写入机器记录、更不会落入任何检查点**。读完本文,你将掌握 `--credential` 绑定、Smolfile/API 配置、值解析优先级、拦截器对每个请求的替换与拒绝规则

gitblog_00702的博客 877

生产环境改 Casdoor 密码,Astron Agent 的模型 Key 挂 TaoToken

生产首登 Astron Agent,先改 Casdoor 默认 admin/123,再把模型凭据挂到 TaoToken(https://taotoken.net/?utm_source=taotoken_aicg_blog_end)。用 Kafka+ES/Kibana 审计 Token,检查 Key、模型名与旧密失效。控制面加固后再接数据面,工作流才安全可追溯。

weixin_42609225的博客 10

OpenConnector凭据加密完全指南:用AES-256-GCM安全保护你的SaaS密钥

OpenConnector 是一个开源认证网关,它将 1000+ 个 SaaS 服务商的 API 密钥、OAuth 令牌统一连接给 AI Agent 使用。在本文中,我们将完整讲解 OpenConnector 的凭据加密机制——如何通过 AES-256-GCM 算法安全存储 SaaS 密钥、如何配置加密密钥、如何轮转密钥,以及新手最容易踩的安全坑。 [![OpenConnector 凭据加密完全

gitblog_00403的博客 881

用 Casdoor 管 Agent 身份,MCP 客户端调模型凭据取 TaoToken

MCP 客户端 401:Casdoor token 误填模型 Key。本文区分 Casdoor 的 Agent/MCP 授权与 TaoToken 模型凭据;Claude Code、Codex、CC Switch 配置见下文。TaoToken:https://taotoken.net/?utm_source=taotoken_aicg_blog_end

StarfallHawk37的博客 176

LLM Agent技能包凭据泄露风险分析与安全防护实践

在LLM应用从对话走向自主执行的过程中,Agent技能包作为可复用的能力单元正被广泛采用。然而,技能包中的脚本与描述文件在加载、执行时,可能通过环境变量读取、日志输出、网络回调等路径泄露API Key、访问令牌等敏感凭据。其根源在于“可执行能力包+共享凭据环境”的组合,使得传统供应链安全风险被引入AI应用边界。本文从凭据泄露的攻击面出发,剖析恶意技能包、沙箱缺失与提示注入三种典型路径,并结合最小权限、密钥隔离、沙箱隔离等工程实践,给出加固Agent安全边界的可行方案,帮助开发者在不放弃Agent能力的前提下

weixin_34198762的博客 477
上一篇: AI 自动回复上线前,别只加一行标识:还要补 5 道生产门禁
下一篇: RAG 索引为什么会召回已删内容:增量更新与删除传播
漂着的圆木
博客等级 码龄19年 0粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值