如何通过GCP Logging查询特定用户近期资源使用及最后登录时间
在GCP中查找用户/服务账号的最后活动时间
一、查找用户账号的最后活动/登录时间
用户账号的登录及资源操作日志会被记录在Cloud Logging中,可通过以下方式查询:
Cloud Logging控制台操作:
- 进入GCP控制台的Cloud Logging页面,切换到目标项目。
- 使用日志过滤器定位目标用户的活动日志,通用过滤器示例:
若仅需筛选控制台登录行为,可用更精准的过滤器:resource.type="audited_resource" AND protoPayload.authenticationInfo.principalEmail="target-user@example.com"protoPayload.methodName="google.cloud.identity.v1.IdentityToolkitService.SignInWithPassword" AND protoPayload.authenticationInfo.principalEmail="target-user@example.com" - 将日志结果按时间倒序排列,第一条日志的时间即为该用户的最后活动/登录时间。
gcloud命令行操作:
执行以下命令,直接返回目标用户最新的一条活动日志:gcloud logging read 'protoPayload.authenticationInfo.principalEmail="target-user@example.com"' --order=desc --limit=1 --format="value(timestamp, protoPayload.methodName, protoPayload.resourceName)"
二、查找服务账号的最后活动时间
服务账号的操作日志同样存储在Cloud Logging中,查询逻辑类似:
Cloud Logging控制台操作:
使用以下过滤器定位目标服务账号的活动:resource.type="audited_resource" AND protoPayload.authenticationInfo.principalEmail="target-sa@your-project.iam.gserviceaccount.com"按时间倒序后,第一条日志的时间即为服务账号的最后使用时间。
gcloud命令行操作:
执行以下命令获取服务账号最新的活动记录:gcloud logging read 'protoPayload.authenticationInfo.principalEmail="target-sa@your-project.iam.gserviceaccount.com"' --order=desc --limit=1 --format="value(timestamp, protoPayload.methodName, protoPayload.resourceName)"
关键注意事项
- 日志保留期:GCP默认日志仅保留30天,若需查询超过30天的历史记录,需提前配置日志导出到BigQuery或其他存储服务。
- 覆盖范围:部分内部系统操作可能不会生成审计日志,但用户的控制台登录、API调用、服务账号的资源访问等核心操作都会被记录。
- 登录vs活动:用户的最后登录时间可能早于最后操作时间,建议以最新的活动日志时间作为账号是否活跃的判断依据。
内容的提问来源于stack exchange,提问作者Sander van den Oord
相关产品推荐
相关产品推荐

