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

为何停用凭证后仍能访问Google Cloud私有存储桶的对象列表?

排查本地Node.js访问GCP私有存储桶的凭证来源

Google Cloud Node.js客户端库会按固定优先级自动查找凭证,以下是你需要逐一排查的常见来源:

1. 环境变量指定的凭证文件

检查本地是否设置了GOOGLE_APPLICATION_CREDENTIALS环境变量,该变量会直接指定凭证文件路径。执行对应命令验证:

  • Windows(cmd):echo %GOOGLE_APPLICATION_CREDENTIALS%
  • Windows(PowerShell):$env:GOOGLE_APPLICATION_CREDENTIALS
  • macOS/Linux:echo $GOOGLE_APPLICATION_CREDENTIALS
    如果输出了JSON文件路径,说明客户端库正使用该凭证,不受代码中注释配置的影响。

2. 用户主目录下的应用默认凭证

检查用户主目录下是否存在.config/gcloud/application_default_credentials.json文件:

  • Windows:C:\Users\[你的用户名]\.config\gcloud\application_default_credentials.json
  • macOS/Linux:~/.config/gcloud/application_default_credentials.json
    即便删除了gcloud默认配置,这个应用默认凭证文件可能仍残留,客户端库会优先读取它。

3. App Engine本地开发环境残留凭证

由于你的项目包含App Engine应用,若之前启动过本地开发服务器(dev_appserver.py),它可能自动生成临时凭证或关联本地身份。尝试关闭所有App Engine本地服务后重新运行代码测试。

4. 系统密钥链中的凭证

部分系统会将GCP凭证存储在系统密钥链内:

  • macOS:打开「钥匙串访问」,搜索「Google」相关条目,查看是否有残留的GCP凭证
  • Windows:打开「凭据管理器」,在「Windows凭据」中查找GCP相关条目

5. 后台运行的GCP工具/插件

检查是否有Cloud Code IDE插件、Cloud SDK代理服务等GCP相关工具在后台运行,这类工具可能会自动提供凭证。关闭所有相关后台进程后再测试代码。

快速定位凭证来源的代码方法

在你的代码中添加以下片段,打印当前使用的凭证详情,帮助判断凭证类型:

const {Storage} = require('@google-cloud/storage');

const storage = new Storage();

async function printCredentialInfo() {
  const authClient = await storage.auth.getClient();
  console.log('当前使用的凭证信息:', authClient.credentials);
}

printCredentialInfo();

输出的内容会包含凭证类型、过期时间等信息,可辅助定位具体来源。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:15:09