如何导出审计日志到 Splunk 并保持字段格式不变?

解读

在国内金融、政企类客户把 Cloud SQL 接入现有 SIEM 体系时,面试官想确认三件事:

  1. 你是否理解 Cloud SQL 审计日志的生成链路(IAM Audit Logs → Cloud Logging);
  2. 能否在不破坏 原始 proto 字段结构 的前提下把日志送到 Splunk;
  3. 是否熟悉国内网络合规要求(如跨境数据需走 专线/云企业网、落地前脱敏)。
    “字段格式不变”= 拒绝简单 CSV 导出,必须保留 nested JSON、protoPayload、resource.labels 等原始层级,以便 Splunk 侧做 CIM 解析。

知识点

  • Cloud SQL 审计日志类型:ADMIN_READ、ADMIN_WRITE、DATA_READ、DATA_WRITE;
  • Cloud Logging Sink:支持 BigQuery、Pub/Sub、GCS、Splunk 四类接收器;
  • Pub/Sub 消息体:原生日志为 proto3 JSON,字段顺序、大小写、空值均固定;
  • Splunk Add-on for Google Cloud:官方插件,内置 pubsub-input,可透传原始 JSON;
  • HEC vs. SC4S:国内 IDC 无公网时常用 HEC(HTTP Event Collector) + 专线,而非 SC4S;
  • 字段冲突:Splunk 默认把 resource.labels.database_id 映射成 resource_labels_database_id,需关闭 KV_MODE = auto
  • 流量合规:跨境场景需启用 VPC Service Controls + 专线接入点,否则日志可能触发 数据出境评估

答案

  1. 组织级 开启 Cloud SQL 的 DATA_READ/WRITE 审计日志:
    gcloud organizations add-iam-policy-binding ${ORG_ID} --member=group:security@客户.中国 --role=roles/logging.privateLogViewer
  2. 创建 Pub/Sub Sink,过滤条件:
    resource.type="cloudsql_database" AND (protoPayload.methodName="cloudsql.instances.connect" OR protoPayload.methodName="cloudsql.instances.query")
    勾选 “使用原始时间戳”“包含子文件夹”,确保字段层级 0 损失。
  3. 北京/上海 Splunk 集群 部署 Splunk Add-on for Google Cloud(4.2.0 以上),配置:
    • 输入类型:Pub/Sub
    • 服务账号密钥:国内落地用 北京 VPC 内的 Private Service Connect 端点,密钥仅授予 roles/pubsub.subscriber
    • 输出格式:勾选 “Include Raw JSON”,关闭 “Timestamp Parsing” 让 Splunk 使用日志自带 timestamp 字段
  4. 在 Splunk props.conf 新增:
    [google:cloudsql:audit]
    KV_MODE = none
    INDEXED_EXTRACTIONS = json
    TIMESTAMP_FIELDS = timestamp
    TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%3NZ
    
    这样 protoPayload.request.database 等嵌套字段保持原样,可被 Splunk CIM 数据模型 直接识别。
  5. 合规加固:
    • 把 Pub/Sub topic 放入 VPC-SC perimeter,日志先落 北京-region,再通过 云企业网 CEN + 专线 到客户 Splunk;
    • 敏感字段(如 protoPayload.request.sqlStatement)用 Cloud DLP 去标识化 模板,在 Sink 端通过 Log Router 转换器 实时脱敏,再进入 Splunk。

拓展思考

  • 如果客户 Splunk 是 SaaS 版部署在新加坡,如何同时满足 PIPL 数据跨境评估实时性 <5 秒
    可在北京区域先建 Splunk Heavy Forwarder 集群 做缓存与脱敏,再通过 GCP 专线 + Splunk HEC ACK 可靠传输,既降低跨境带宽费用,又满足审计署对 原始日志不可篡改 的要求。