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

未知API Keys与`anonymous`服务账户问题排查问询

神秘API密钥与anonymous服务账户排查问题

在排查每小时约4000次compute.v1.BackendServicesService.Get请求仅返回404的问题过程中,发现了两个新问题:

  • 存在未知API密钥被使用
  • 出现唯一ID为anonymous的服务账户

当前项目未配置任何API密钥。

核心疑问

  1. 这些API密钥是什么?为何被使用?
  2. anonymous服务账户是什么?为何被使用?

以下是使用Google托管Prometheus的Prometheus API和PromQL(相比MQL更熟悉前者)进行的查询操作,所有查询基于serviceruntime.googleapis.com的consumed_api类型指标:

基础环境配置

PROJECT="..."
MONITORING="https://monitoring.googleapis.com/v1"
ENDPOINT="${MONITORING}/projects/${PROJECT}/location/global/prometheus"

TOKEN=$(gcloud auth print-access-token)

START=$(date +%s -d "3 hours ago")
END=$(date +%s)

查询过去3小时使用过的API密钥

MATCH="
serviceruntime_googleapis_com:api_request_count{
  monitored_resource=\"consumed_api\"
}"
START=$(date +%s -d "3 hours ago")
END=$(date +%s)

curl \
--silent \
--get \
--header "Authorization: Bearer ${TOKEN}" \
--data-urlencode "match[]=${MATCH}" \
--data-urlencode "start=${START}" \
--data-urlencode "end=${END}" \
${ENDPOINT}/api/v1/label/credential_id/values \
| jq -r '.|select(.status=="success")|.data[]|match("apikey:(.+)")|.captures[0].string'

查询结果:

AIza..1g
AIza...Nc

查询API密钥调用的具体方法

# 仅匹配以`apikey:`开头的凭证
MATCH="
serviceruntime_googleapis_com:api_request_count{
  monitored_resource=\"consumed_api\",
  credential_id=~\"apikey:.+\"
}"

curl \
--silent \
--get \
--header "Authorization: Bearer ${TOKEN}" \
--data-urlencode "match[]=${MATCH}" \
--data-urlencode "start=${START}" \
--data-urlencode "end=${END}" \
${ENDPOINT}/api/v1/label/method/values \
| jq -r '.|select(.status=="success")|.data[]'

查询结果:

google.cloud.functions.v2.FunctionService.ListFunctions
google.cloud.functions.v2.FunctionService.ListRuntimes
google.cloud.location.Locations.ListLocations
google.cloud.run.v1.Services.ListServices
google.cloud.scheduler.v1.CloudScheduler.ListJobs
google.cloud.scheduler.v1beta1.CloudScheduler.ListJobs
google.datastore.v1.Datastore.Lookup
google.firestore.admin.v1.FirestoreAdmin.GetDatabase
google.firestore.v1.Firestore.ListCollectionIds
google.longrunning.Operations.ListOperations

注:Firestore/Datastore相关调用使用其中一个API密钥;Cloud Run/Scheduler/Functions/Location相关调用使用另一个API密钥。

anonymous服务账户调用情况

anonymous服务账户被用于约100次google.logging.v2.LoggingServiceV2.WriteLogEntries调用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:35:31