密钥审计日志记什么
密钥相关的审计日志要能回答四个问题:谁、什么时候、对哪把密钥、做了什么、结果如何。生成、使用、导出尝试、属性修改、销毁这几类操作都要覆盖,其中失败尝试的价值常被低估——一次被拒绝的导出请求往往就是攻击行为的第一个信号。日志本身的保护同样重要:独立存放、防篡改、权限与业务账号分离,否则出事时最先被清理的正是日志。
基本信息
| 记录字段 | 主体、时间、操作、密钥标识、结果、来源地址 |
|---|---|
| 覆盖操作 | 生成、使用(加解密与签名)、导出尝试、属性变更、销毁 |
| 保护要求 | 独立存放、防篡改、与业务账号权限分离 |
| 告警场景 | 异常高频使用、非工作时段使用、导出尝试、来源突变 |
| 数据来源 | 云 KMS 与 HSM 自带审计流,应用侧另需在日志中带上密钥标识 |
| 留存周期 | 按合规与取证需要设定,并定期验证确实可查 |
典型使用场景
- 异常使用发现:某把密钥在凌晨被大量调用时第一时间告警。
- 泄露事件取证:还原某把密钥被哪些主体、在什么时间范围内使用过。
- 合规审计:向评审方提供密钥操作的可追溯记录。
- 变更管理:确认轮换与销毁动作确实执行、且由授权人发起。
- 误操作复盘:区分是配置错误还是人为操作导致的服务中断。
日志字段示例
日志字段示例
time=2026-01-01T03:12:44Z actor=svc-a action=decrypt key_id=k-42 result=ok src=10.0.3.7
time=2026-01-01T03:13:02Z actor=svc-a action=export_attempt key_id=k-42 result=denied src=10.0.3.7
# 两条日志的关键差别在 action 与 result:失败的导出尝试通常比成功调用更值得告警
# 采集时要保证 key_id 与实际密钥清单可关联,否则告警无法定位处置对象字段与告警设定
| 字段 | 含义 | 典型告警阈值 |
|---|---|---|
| actor | 调用主体(账号或服务) | 出现未登记主体 |
| action | 操作类型 | 出现导出类操作 |
| key_id | 密钥标识 | 敏感密钥被非预期主体使用 |
| result | 结果 | 被拒绝或出错集中出现 |
| src | 来源地址 | 来源与基线不符 |
| time | 发生时间 | 非工作时段出现批量调用 |
云 KMS 与 HSM 通常自带审计日志,但需要与业务日志关联才有意义:只看到某把密钥被调用,不知道对应哪次发布或哪个租户,处置时仍要重新查一遍。