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

GKE环境中kubectl create token操作的日志查询求助

解决GKE中kubectl create token操作的日志查询问题

核心原因

你之前没找到日志,大概率是选错了日志类型或者查询条件匹配错误。kubectl create token是Kubernetes API层面的操作,对应的日志属于GKE的Kubernetes审计日志,而非普通的GCP Cloud Audit Logs。

正确查询步骤

1. 确认Kubernetes审计日志已启用

即使你开了所有GCP审计日志,GKE的Kubernetes审计日志需要单独配置:

  • 进入GKE集群详情页,点击「编辑」
  • 找到「审计日志」模块,确保勾选「启用审计日志」,并选择日志级别(推荐选「全部」)
  • 若之前未启用,修改集群配置后,后续的kubectl create token操作才会生成日志,历史操作无法回溯

2. 在日志资源管理器中使用正确的查询语句

直接复制以下查询模板,替换[你的项目ID]和[你的邮箱]后执行:

resource.type="k8s_cluster"
logName="projects/[你的项目ID]/logs/container.googleapis.com%2Fkubernetes_audit"
protoPayload.authenticationInfo.principalEmail="[你的邮箱]"
protoPayload.requestObject.kind="TokenRequest"

其他可选过滤条件

如果需要更精准定位,可以添加以下条件:

  • 按服务账号名称过滤:protoPayload.requestObject.spec.audiences:"[目标服务账号名称]"
  • 按操作类型确认:protoPayload.methodName="create"
  • 按资源路径过滤:protoPayload.resourceName:"serviceaccounts/tokens"

常见误区说明

  • 你之前用的io.k8s.core.v1.token.create是错误的methodName,Kubernetes审计日志中该操作的methodName就是create
  • 通过GCP控制台执行kubectl时,请求IP是GCP控制台/Cloud Shell的IP,不是你本地IP,所以用本地IP查询不到
  • 服务账号名称不会直接出现在protoPayload的顶层字段,需要从requestObject中提取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:13:16