活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 生命周期事件时间。 |
| key_id | Utf8 | 非秘密密钥记录标识符。 |
| owner_type | Utf8 | 服务、用户或自动化所有者类。 |
| scope_class | Utf8 | 有界范围类别。 |
| event_name | Utf8 | key_created、key_used、key_rotated 或 key_revoked。 |
| outcome | Utf8 | 成功、拒绝或失败。 |
DataFusion SQL
复制查询
sql
SELECT
key_id,
owner_type,
scope_class,
MIN(CASE WHEN event_name = 'key_created' THEN timestamp_utc END) AS created_at,
MAX(CASE WHEN event_name = 'key_used' THEN timestamp_utc END) AS last_used_at,
MAX(CASE WHEN event_name = 'key_rotated' THEN timestamp_utc END) AS rotated_at,
MAX(CASE WHEN event_name = 'key_revoked' THEN timestamp_utc END) AS revoked_at,
SUM(CASE WHEN outcome <> 'success' THEN 1 ELSE 0 END) AS failed_events
FROM api_key_audit_events
WHERE timestamp_utc >= now() - INTERVAL '90 days'
GROUP BY key_id, owner_type, scope_class
ORDER BY created_at;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
API 密钥生命周期审查
该表保留生命周期时间戳和非秘密标识符以供审查。
| key_id | owner_type | scope_class | created_at | last_used_at | rotated_at | revoked_at | failed_events |
|---|---|---|---|---|---|---|---|
| key-record-17 | automation | read-write | 2026-05-02 | 2026-07-28 | — | — | 0 |
| key-record-42 | service | write | 2026-07-01 | 2026-07-26 | 2026-07-27 | 2026-07-27 | 1 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1条件时间戳将关键生命周期折叠到一个审核行中。
- 2非秘密密钥记录 ID 支持关联而不暴露密钥材料。
- 3失败的生命周期事件在最终状态旁边仍然可见。
需要决定的边缘情况
- 切勿记录密钥、令牌前缀、授权标头或可逆哈希。
- 轮换可能涉及新旧密钥的重叠。
- 凭证元数据的保留和访问需要安全批准。
推荐仪表板
- 表:按所有者类别划分的密钥生命周期
- 统计:最近没有使用过的活动密钥
- 趋势:失败的轮换和撤销事件
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。