使用OIDC工作负载身份池cred-file执行gcloud auth login失败问题
问题解决:generated_oidc_token 文件未找到的原因及处理方法
核心原因
你下载的工作负载身份池凭证配置中,credential_source.file 指定的 generated_oidc_token 不是gcloud CLI自动生成的文件,而是需要你自行生成并提供的OIDC令牌文件。gcloud auth login仅验证配置文件格式合法,但实际调用云服务(如gsutil操作存储桶)时,需要读取该文件中的令牌来完成身份认证,因此找不到文件就会触发报错。
处理步骤
获取合法的OIDC令牌
从你的外部身份提供商(如企业IDP、自定义OIDC服务)获取符合要求的JWT格式OIDC令牌,该令牌需要与工作负载身份池提供商的配置匹配(比如受众、签名算法等)。生成令牌文件
创建名为generated_oidc_token的JSON文件,内容格式需与配置中的format字段一致,即文件包含access_token字段,值为你获取到的OIDC令牌:{ "access_token": "你的OIDC令牌字符串" }放置文件到指定位置
- 可以将文件放在执行
gsutil命令的当前工作目录; - 或者修改配置文件中的
credential_source.file为文件的绝对路径(比如/Users/borgil/generated_oidc_token),确保CLI能找到它。
- 可以将文件放在执行
权限设置(可选但推荐)
在Linux/macOS环境下,设置文件权限避免被其他用户读取:chmod 600 generated_oidc_token
补充说明
- OIDC令牌存在有效期,过期后需要重新获取并更新文件内容;
- 确保令牌的受众(aud)与配置中的
audience字段一致,否则会导致认证失败。
内容的提问来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

