You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Cloud旧服务账号使用查询及安全删除方案问询

如何检查Google Cloud旧服务账号的使用情况并安全删除?

完全理解你的顾虑——直接动服务账号或密钥确实容易踩坑,尤其是不确定它们是否还在被使用的时候。下面是我在处理这类问题时常用的方法,既能摸清账号的使用状态,又能安全清理:

一、查看服务账号的上次使用时间与使用频率

要确认服务账号是否活跃,Cloud Audit Logs是最可靠的工具,因为几乎所有Google Cloud API调用都会留下日志记录:

  • 通过Log Explorer查询活动日志
    打开Cloud Console的Log Explorer,输入以下筛选条件(替换成你的服务账号邮箱):

    protoPayload.authenticationInfo.principalEmail: "your-service-account@PROJECT-ID.iam.gserviceaccount.com"
    

    你可以调整时间范围(比如选过去30天、90天),日志会按时间倒序排列,最新的活动会显示在最顶部。从这里你能清楚看到账号的使用频率和上次活跃时间。

  • 用gcloud命令快速查询
    如果习惯用命令行,直接运行以下命令就能获取最近的活动记录:

    gcloud logging read 'protoPayload.authenticationInfo.principalEmail="your-service-account@PROJECT-ID.iam.gserviceaccount.com"' --limit=20 --order=desc
    

    输出结果里的timestamp字段就是每条活动的时间,一眼就能找到最新的使用记录。

  • 查看密钥的使用记录
    在Cloud Console的「IAM & Admin > Service Accounts」页面,点击目标账号进入详情页,切换到「Keys」标签。这里会列出所有密钥的创建时间,以及上次使用时间(仅当密钥用于调用Google Cloud API时才会记录,第三方服务调用不会显示)。如果某个密钥很久没被使用,那它对应的使用场景大概率已经废弃了。

二、安全清理的最优方案:避免直接删除密钥

直接删密钥风险太高,万一有隐藏的服务在依赖它,瞬间就会导致服务中断。我通常推荐以下循序渐进的流程:

  1. 先禁用服务账号,而非删除
    在服务账号详情页点击「Disable」按钮。禁用后,该账号的所有密钥都会失效,但账号本身还在,你有足够的缓冲期验证是否有依赖。

  2. 监控异常日志,确认无依赖
    禁用后的几天到几周内,用Log Explorer筛选和该账号相关的错误日志,比如:

    protoPayload.authenticationInfo.principalEmail: "your-service-account@PROJECT-ID.iam.gserviceaccount.com" AND protoPayload.status.code=16
    

    这个条件会筛选出该账号的认证失败请求。如果连续几天都没有这类日志,基本可以确定没有服务在使用它了。

  3. 检查资源绑定情况
    别忘记检查项目里的云资源是否绑定了这个服务账号:比如Compute Engine实例的默认服务账号、Cloud Functions/Cloud Run的运行账号、BigQuery的作业服务账号等。可以通过资源的配置页面逐一确认,确保没有遗漏的依赖。

  4. 彻底清理
    确认无任何依赖后,你可以选择:

    • 先删除所有关联密钥,再删除服务账号;
    • 直接删除服务账号(删除账号会自动清理所有密钥)。

这样一套流程下来,既能保证不会误删正在使用的账号,又能安全清理废弃的资源。

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

火山引擎 最新活动