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

如何排查GSutil复制文件到GCS时403拒绝的访问主体?

排查gsutil 403访问拒绝的主体身份方法
  • 直接查看当前gsutil使用的身份

    • 执行命令 gcloud auth list,输出中带*标记的账号就是当前gsutil默认使用的身份。如果是个人邮箱格式(如xxx@xxx.com),则为操作系统用户;如果是xxx-compute@developer.gserviceaccount.com这类格式,则是Compute Engine服务账号。
    • 也可以用更直接的命令 gsutil whoami,会直接返回执行当前操作的主体邮箱,一眼就能区分身份类型。
  • 验证Compute Engine实例的服务账号配置(如果在GCE实例上操作)

    • 在实例内执行:curl http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email -H "Metadata-Flavor: Google",返回的是实例绑定的默认服务账号邮箱。将其与gsutil whoami的结果对比,就能确认是否在使用实例的服务账号。
    • 如果实例未启用服务账号或权限不足,gsutil会自动使用本地缓存的用户认证(比如之前通过gcloud auth login登录的账号)。
  • 检查本地认证缓存

    • 查看本地认证目录 ~/.config/gcloud/credentials下的文件,里面存储着已认证的账号信息。若文件内容是个人邮箱,说明用的是操作系统用户身份;若为服务账号邮箱,则是使用了服务账号密钥文件进行认证。
  • 关于Log Explorer无记录的说明

    • 可能是日志延迟,等待数分钟后再查询;也可能是日志范围或过滤器有误,需确保选择了目标GCS资源所在的项目,并用正确的过滤器(如protoPayload.methodName:"storage.objects.create" AND protoPayload.status.code:403)。若仍无记录,大概率是认证环节提前失败(如密钥无效、本地身份缓存过期),这类情况不会生成GCS访问日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:22:10