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

使用GCP ADC模拟服务账号认证失败求助

排查步骤

1. 确认权限绑定的正确性

确保你执行gcloud auth application-default login所用的账号,在目标服务账号(<sa_email>)的IAM权限配置中被授予了roles/iam.serviceAccountTokenCreator角色。项目级的该角色虽也生效,但优先检查服务账号级别的绑定是否存在,避免项目级政策被覆盖。

2. 验证gcloud默认凭据的有效性

执行以下命令,确认gcloud生成的默认凭据能正常获取 impersonated 令牌:

gcloud auth application-default print-access-token --impersonate-service-account=<sa_email>

如果命令报错,说明gcloud层面的 impersonation 逻辑存在问题,优先排查gcloud配置而非代码;如果能正常输出令牌,再聚焦代码端问题。

也可查看当前默认凭据的详情:

gcloud auth application-default info

确认输出中包含impersonated_service_account字段,且值为你的目标服务账号邮箱。

3. 检查环境变量干扰

确认未设置GOOGLE_APPLICATION_CREDENTIALS环境变量——该变量会覆盖gcloud生成的默认凭据,导致代码加载本地密钥文件而非 impersonated 的服务账号凭据。

在终端执行对应命令检查:

# Windows系统
echo %GOOGLE_APPLICATION_CREDENTIALS%

# Linux/macOS系统
echo $GOOGLE_APPLICATION_CREDENTIALS

如果有输出,临时取消该变量后再测试代码。

4. 更新gcloud组件到最新版本

旧版本gcloud CLI在处理应用默认凭据的 impersonation 逻辑时可能存在bug,执行更新:

gcloud components update

更新完成后重新执行gcloud auth application-default login --impersonate-service-account=<sa_email>,再测试代码。

5. 手动构建Impersonated凭据(绕过默认加载逻辑)

尝试在代码中显式构建 impersonated 凭据,而非依赖google.auth.default自动加载,排查是否是默认加载逻辑的问题:

import google.auth
from google.auth import impersonated_credentials
from googleapiclient.discovery import build

# 获取基础用户凭据(来自gcloud登录)
base_creds, _ = google.auth.default(scopes=["https://www.googleapis.com/auth/iam"])

# 构建目标服务账号的 impersonated 凭据
impersonated_creds = impersonated_credentials.Credentials(
    source_credentials=base_creds,
    target_principal="<sa_email>",
    target_scopes=["https://www.googleapis.com/auth/spreadsheets"],
    lifetime=3600
)

# 初始化Sheets服务
service = build("sheets", "v4", credentials=impersonated_creds)
result = service.spreadsheets().values().get(
    spreadsheetId="<spreadsheet_id>", range="<range_name>"
).execute()

print(result.get("values", []))

6. 检查组织级IAM限制

如果你的项目属于Google Cloud组织,确认组织级政策没有禁用服务账号 impersonation,或设置了条件性政策阻止当前账号的 impersonation 操作。可联系组织管理员检查IAM政策中的约束条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:27:22