You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Spanner无效登录尝试监控配置及相关问题咨询

针对Spanner无效登录监控的问题解答

一、现有无效登录查询的有效性验证

你编写的日志查询逻辑是准确的:

resource.type="spanner_instance"
  protoPayload.methodName=~"google.spanner.v1.Spanner..*CreateSession.*"
  protoPayload.authorizationInfo.granted!="true"

CreateSession是Spanner客户端建立连接的核心方法,授权失败(granted!="true")直接对应无效登录尝试,这个查询可以精准捕获这类事件。如果需要缩小范围,可以额外添加时间过滤或指定目标实例/数据库的条件。

二、测试SA频繁触发日志的排查方向

你创建的无权限SA频繁出现在日志中但未主动调用,大概率是有后台服务或自动化任务在使用该SA,可按以下方向排查:

  • 定位调用来源:查看日志的protoPayload.requestMetadata.callerIp和callerSuppliedUserAgent字段,能直接看到发起请求的IP地址和客户端标识(比如Cloud Function、Terraform、自定义应用等)
  • 检查关联资源:确认该SA是否被绑定到了某个自动执行的资源上,比如Cloud Function、Cloud Run服务、Cloud Scheduler任务,或是被添加到了有定时执行权限的IAM组中
  • 排查误配置:检查你的基础设施即代码(IaC)工具(如Terraform、Cloud Deployment Manager)配置,是否不小心将该SA设为了某个资源的默认服务账号
  • 验证日志时效性:查看日志的时间戳,确认是否是历史请求的延迟上报,或是日志重复生成的问题

三、无需额外Spanner权限的监控方案

监控Spanner登录尝试(含无效)核心依赖Cloud Audit Logs,以下是无需给监控主体额外Spanner权限的可行方案:

  • 基于日志直接创建告警:确保Spanner实例已开启Data Access日志(需在Spanner实例的"日志"配置中勾选"Data writes"和"Data reads"类别,Admin Activity日志默认开启),然后直接用你编写的查询创建Cloud Monitoring告警政策,只要配置告警的账号拥有roles/logging.viewer和roles/monitoring.editor权限即可,不需要Spanner的读写或管理权限
  • 创建自定义日志指标:在Cloud Logging中基于你的查询创建自定义计数器指标,统计无效登录次数,再基于该指标设置阈值告警。这种方式更适合长期趋势监控,同样只需要日志和监控的基础权限
  • 结合IAM Audit Logs:IAM的Audit Logs会记录所有权限验证失败事件,你可以通过查询resource.type="iam"且protoPayload.methodName="google.iam.v1.IAM.CheckPermissions"并关联Spanner资源的方式,间接监控登录权限失败事件,这种方式无需单独开启Spanner的Data Access日志,但精准度略低于直接监控CreateSession事件

内容的提问来源于stack exchange,提问作者syncerror

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:47:22