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

从GKE自动托管集群访问Google Cloud Storage遇权限问题求助

解决GKE自动托管集群访问GCS的403权限问题

核心排查与解决步骤

自动托管集群的权限模型和标准集群存在差异,节点服务账号默认权限、Workload Identity配置逻辑都有区别,以下是针对性解决方案:

1. 确认工作负载的服务账号配置

  • 检查Pod是否显式指定了有权限的服务账号:
    在Deployment/StatefulSet的spec.template.spec.serviceAccountName字段,确认设置为你已配置的、可访问GCS/BQ的服务账号名称。如果未指定,Pod会使用默认的default服务账号,该账号默认权限极低。

2. 配置Workload Identity(推荐方案)

自动托管集群默认启用Workload Identity,需将Kubernetes服务账号(KSA)与Google Cloud服务账号(GSA)绑定:

  • 创建KSA(若未存在):
    kubectl create serviceaccount <ksa-name> --namespace <your-namespace>
    
  • 绑定KSA到GSA:
    gcloud iam service-accounts add-iam-policy-binding <gsa-email> \
      --member "serviceAccount:<project-id>.svc.id.goog[<your-namespace>/<ksa-name>]" \
      --role "roles/iam.workloadIdentityUser"
    
  • 给KSA添加注解关联GSA:
    kubectl annotate serviceaccount <ksa-name> \
      --namespace <your-namespace> \
      iam.gke.io/gcp-service-account=<gsa-email>
    
  • 确保GSA已拥有storage.buckets.get及所需GCS权限(比如roles/storage.objectViewer或自定义角色)。

3. 检查节点池的OAuth范围

自动托管集群的节点池scopes配置逻辑和标准集群不同,需确保节点池包含cloud-platform scope:

  • 查看当前节点池的scopes:
    gcloud container node-pools describe <node-pool-name> --cluster <autopilot-cluster-name> --zone <zone>
    
  • 若缺少cloud-platform,更新节点池:
    gcloud container node-pools update <node-pool-name> --cluster <autopilot-cluster-name> --zone <zone> --scopes "https://www.googleapis.com/auth/cloud-platform"
    
    注意:自动托管集群更新节点池会触发节点滚动更新,需确保业务可容忍短暂中断。

4. 验证服务账号权限有效性

  • 直接用GSA测试GCS访问,确认权限本身无问题:
    gcloud auth activate-service-account <gsa-email> --key-file=<key-file-path>
    gsutil ls gs://my-bucket
    
    如果测试失败,说明GSA本身权限不足,需给GSA添加对应GCS IAM角色(比如roles/storage.admin或更细粒度的roles/storage.objectViewer+roles/storage.bucketViewer)。

5. 排查集群级IAM限制

检查是否有项目级或集群级IAM政策阻止Pod访问GCS:

  • 查看项目级IAM政策,确认没有拒绝该服务账号访问GCS的规则:
    gcloud projects get-iam-policy <project-id> --filter="bindings.members:<gsa-email>"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:03:23