土法炼钢 · 系统与基础设施

【Agent 身份与安全】Agent 审计日志与归因

文章导航

分类入口
architecturesecurity
标签入口
#agent#audit#attribution#opentelemetry#pii#compliance

目录

合规与事故调查问:哪个用户、通过哪个 Agent、在什么策略版本下、调用了什么 tool、访问了哪条记录?OAuth sub alone 不够——必须含 act(Agent)与策略决策。本文定义 最小日志集,给出 OpenTelemetry 建模建议,并标 PII 清洗点——联动 PAM/IGA 审计零信任可观测性


一、最小审计字段集

每条 Agent 相关事件建议包含:

字段 来源 示例
event_id UUID evt_01H...
timestamp RFC3339 UTC
delegator_id JWT sub user-248289761001
agent_id JWT act.sub 或 SPIFFE ID spiffe://.../checkout-agent
client_id OAuth client
tool_name function / MCP tool run_sql
resource API path / file id /mail/msg/123
action HTTP method / SQL class SELECT
decision allow / deny / pending_approval allow
policy_version OPA bundle git sha abc123
delegated_token_jti 若存在 关联 token
trace_id W3C traceparent 跨服务

deny 事件与 allow 同等重要——攻击探测留痕。


二、归因链

flowchart LR
  U["delegator_id<br/>用户"] --> A["agent_id<br/>Agent"]
  A --> T["tool_call"]
  T --> R["resource"]
  R --> D["decision + policy_version"]

调查查询示例(概念 SQL,非特定产品):

SELECT timestamp, tool_name, resource, decision
FROM agent_audit
WHERE delegator_id = 'user-248289761001'
  AND agent_id = 'checkout-agent'
  AND timestamp BETWEEN '2026-06-01' AND '2026-06-02';

三、OpenTelemetry 建模

3.1 Span 层次

trace: agent.task.checkout
├── span: llm.completion (model=...)
├── span: agent.tool.run_sql
│   ├── attribute: delegator_id
│   ├── attribute: agent_id
│   ├── attribute: tool.args_hash (非明文 args)
│   └── span: db.query
└── span: agent.tool.send_email

3.2 推荐 Attributes(语义约定级)

Attribute 说明
enduser.id delegator_id(OTel 语义约定)
agent.id agent_id
agent.tool.name tool 名
agent.policy.decision allow/deny
agent.policy.version bundle 版本

把 Bearer token、邮件正文、SQL 绑定参数明文放入 span——用 hash 或 id。

3.3 与 MCP 对齐

MCP tools/call 应在 Host 创建 child span,server_id 作 attribute——多 Server 拓扑可过滤。


四、PII 清洗点

位置 策略
LLM prompt 最小必要;日志 redact
tool args 日志 记录 hash + 结构化 allowlist 字段
tool 结果缓存 第 08 篇
导出 SIEM tokenize 邮箱/电话
审计 retention 与 GDPR/本地法一致——本文不认定合规

五、不可篡改与完整性

高合规场景:审计流 append-only(WORM / hash chain);与 PAM 会话录像 不同——Agent 审计是 结构化事件 非 keystroke。


六、与 Policy Engine 联动

OPA decision log 已含 input/result——Agent 平台应 归一化 到上述字段集,避免 OPA 与 Gateway 各记一套。


七、反模式

  1. 只记 allow 不记 deny
  2. args 明文进 Splunk
  3. 无 agent_id——无法区分用户自操作
  4. 无 policy_version——无法复现当时规则

八、边界

九、args_hash

SHA256(canonical JSON)——勿记录明文 args。


十、deny 100% 采样

tail sampling 不作用于 deny/HITL 事件。


十一、post-incident runbook

按 delegator_id + time range 导出 tool 链。

上一篇持续验证

下一篇落地架构


参考资料

  1. OpenTelemetry Specification, Semantic Conventions
  2. PAM/IGA 审计
  3. 零信任可观测性
  4. RFC 8693, act claim 语义

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-06-18 · architecture / security

【Agent 身份与安全】AI Agent 的身份、委托与审计

IAM 系列(人)与零信任系列(边界)的自然延伸:当 LLM Agent 代表用户调用 API、执行 SQL、读写邮件时,传统 OAuth 模型如何扩展?拆解 Token Exchange、MCP 安全模型、工具级授权、持续验证与审计归因。

2026-06-21 · architecture / security

【身份与访问控制工程】PAM、IGA 与审计合规

PAM(Privileged Access Management)管理的是'有钥匙的人'——域管理员、数据库 DBA、云基础设施 root 账号。IGA(Identity Governance and Administration)管理的是'谁应该有什么访问权限'——访问认证(Access Certification)、权限审计(SoD 分离)、自动化开通。两者加上审计日志构成安全合规的三足鼎立。本文拆解 PAM 的会话劫持与审计、IGA 的访问认证与角色挖掘,以及审计日志的不可篡改设计。


By .