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

如何在Java Spring Boot应用中使用GCP Workload Identity?遇403错误如何解决

GCP Workload Identity 403权限报错排查

错误原因

报错指向你当前用于调用GCP接口的身份,没有权限模拟目标工作负载服务账号proj-workload-id-svc-acct@idmp-mii-dev-ddb5.iam.gserviceaccount.com生成访问令牌,核心问题有两个:

  1. 你在application.properties中配置的GOOGLE_APPLICATION_CREDENTIALS参数不会被GCP Java SDK自动识别,代码中调用StorageOptions.getDefaultInstance()时加载的是默认凭证(比如本地gcloud缓存凭证、运行环境的默认服务账号凭证),而非你指定的config.json凭证,导致实际发起请求的身份不符合预期。
  2. 实际发起请求的身份缺少iam.serviceAccounts.getAccessToken权限,无法完成服务账号模拟生成AccessToken的操作。

解决方案

1. 修正凭证加载逻辑

手动加载你指定的config.json凭证构建Storage客户端,修改代码如下:

import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import org.springframework.core.io.ClassPathResource;
import java.io.IOException;

private static void testListGCPBucket(String configPath) throws IOException {
    // 手动加载配置的凭证文件
    GoogleCredentials credentials = GoogleCredentials.fromStream(
        new ClassPathResource(configPath).getInputStream()
    );
    Storage storage = StorageOptions.newBuilder()
        .setCredentials(credentials)
        .build()
        .getService();
    System.out.println("Buckets:");
    Page<Bucket> buckets = storage.list();
    for (Bucket bucket : buckets.iterateAll()) {
        System.out.println(bucket.toString());
    }
    System.out.println("completed...");
}

2. 授予服务账号模拟权限

在GCP IAM控制台为config.json对应的身份,授予目标服务账号的Service Account Token Creator角色:

  • 操作路径:进入GCP控制台「IAM与 admin」→「服务账号」,找到目标服务账号proj-workload-id-svc-acct@idmp-mii-dev-ddb5.iam.gserviceaccount.com,进入「权限」页签,点击「授予访问权限」
  • 新增主体:填写config.json对应的服务账号邮箱/用户身份
  • 分配角色:选择「Service Account Token Creator」(roles/iam.serviceAccountTokenCreator),保存后等待权限生效即可。

3. 部署到GKE环境的额外校验

如果应用部署在GKE集群使用Workload Identity,还需要确认:

  • 集群已开启Workload Identity功能
  • 应用使用的Kubernetes服务账号已和GCP服务账号完成绑定
  • 应用Pod的serviceAccountName字段已指定为绑定完成的Kubernetes服务账号

内容的提问来源于stack exchange,提问作者GURUDAS K S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:15:03