4. 启用KMS审计日志:三大云平台的实战配置
好,这一章我们来点真格的。上一章我们聊了审计日志长什么样,这一章我们就来动手把它“打开”。说白了,就是让你知道在AWS、Azure、GCP这三家主流云上,到底在哪点几下鼠标,填几个参数,才能让日志开始流出来。
我个人习惯先看文档再动手,但光看文档容易晕。所以我把核心步骤和那些容易踩的坑,直接给你整理出来。
4.1 AWS CloudTrail + KMS 审计
AWS的KMS审计日志,不是KMS自己产生的,而是靠CloudTrail记录API调用。你启用了KMS密钥,所有和这个密钥相关的操作——创建、启用、禁用、加密、解密——都会被CloudTrail抓下来。
- 打开CloudTrail:在AWS控制台搜“CloudTrail”,进入后点击“创建跟踪”。
- 命名并应用:给跟踪起个名字,比如“kms-audit-trail”。记得勾选“应用到所有区域”。
- 存储位置:创建一个S3桶来存日志,或者你可以选CloudWatch Logs来做实时监控。
- KMS加密(关键):CloudTrail默认会用SSE-S3加密,但你也可以指定一个CMK(客户主密钥)来加密日志文件。我个人建议都用CMK,因为这样你可以控制谁读得到日志。
- 开启“日志文件验证”:这步容易被忽略,但它能保证日志没被篡改过。
注意事项:
- KMS密钥权限:CloudTrail要能把日志写入S3或CloudWatch,它使用的IAM角色必须有
kms:Decrypt和kms:GenerateDataKey的权限。我碰到过好几次,配置完发现日志没写进去,一查就是这里少了权限。 - 数据事件的坑:默认情况下,CloudTrail只记录管理事件(比如
CreateKey、ScheduleKeyDeletion)。要记录对特定KMS密钥的“数据事件”(比如Encrypt、Decrypt),你需要手动添加数据事件筛选器,指定密钥的ARN。
4.2 Azure Key Vault 诊断日志
Azure的做法和AWS不太一样。它的KMS审计日志直接集成在Key Vault的诊断设置里。你想想看,如果你客户是用Azure的,他更关心的是谁访问了Vault里的密钥或机密。
- 找到Key Vault:在Azure门户中,找到你要审计的Key Vault实例。
- 进入诊断设置:在左侧菜单栏,找到“监控”下的“诊断设置”。点击“+ 添加诊断设置”。
- 选择日志类别:勾选“AuditEvent”这个类别。这个是核心,记录所有针对Vault的操作。
- 选择目标:和AWS类似,你可以选择发送到Log Analytics工作区(方便查询)、Azure存储(归档用)或事件中心(实时流)。
- 保存并等待:保存后,大约5分钟,日志就开始产生了。
我曾经踩过一个坑:诊断设置里的“类别详细信息”选择“AuditEvent”时,如果你用的是软删除功能,删除Key Vault的日志可能找不全。为什么?因为软删除状态下,Vault只是被“标记删除”,API调用记录还在。但如果你彻底硬删,日志就彻底没了。所以我在项目里一般都开着软删除和保留期。
4.3 GCP Cloud Audit Logs 与 Cloud KMS
GCP的做法集成度最高。它默认已经为所有服务开启了Cloud Audit Logs,但默认只有“管理活动”类型的日志。要记录KMS的“数据访问”日志,你得手动打开。
- 打开IAM与管理员:进入GCP控制台,选择“IAM与管理员” -> “审核日志”。
- 选择服务:在服务列表中找到“Cloud KMS”。
- 配置日志类型:你会看到“管理活动”、“数据访问”、“系统事件”等选项。把“数据访问”的日志类型勾选为“开启”。
- 配置排除(可选):如果你不想记录某些特定用户或项目的操作,可以在这里添加排除规则。
- 保存并生效:配置立即生效。日志会进入Cloud Logging中。
Decrypt、Encrypt的操作。如果你的应用调用加密API非常频繁,日志量可能涨得很快,成本也会随之升高。我个人习惯是先开一小段时间,看看流量模式,再决定是否全局开启。
注意事项:
- 成本考量:GCP的日志写入和存储都是要付费的。数据访问日志的量可能是管理日志的几百倍。你想想看,你的系统每天加密解密几万次,日志就有几万条。
- 权限:你必须有
roles/logging.configWriter角色才能修改审核日志配置。
4.4 三平台核心流程对比
为了方便你快速比对,我把三个平台的启用方式、关键配置和数据敏感度整理成了一个表格。你看到底是事前规划还是事后补救。
| 维度 | AWS (CloudTrail) | Azure (诊断设置) | GCP (Cloud Audit Logs) |
|---|---|---|---|
| 启用方式 | 创建跟踪,搭配S3/CloudWatch | 在Key Vault中配置诊断设置 | 在IAM审核日志中开启数据访问 |
| 是否自动记录 | 管理事件默认开启,数据事件需手动 | 默认不开启,需手动配置 | 管理事件默认,数据事件手动 |
| 常见选择 | 勾选“所有区域”和“日志文件验证” | 选“AuditEvent”并发送到Log Analytics | 勾选“数据访问” |
| 特别醒坑 | IAM角色权限不足导致日志不写 | 软删除状态下的日志丢失 | 日志量过大导致高额费用 |
嗯,到这里你应该能看出来,不同平台的逻辑是相似的,但操作细节差异很大。我推荐你从GCP开始练手,因为它默认开启管理日志,你不需要额外配置就能看到一些基础日志,便于理解。
最后提一句,不管你用哪个平台,做配置之前,最好先列一个清单:你要审计谁?密钥的哪些操作要记录?日志要存多久?这些决定都会影响你后续配置选项的选择。