【问题标题】:GKE / Cloud IAM workload Identity setup error 403GKE / Cloud IAM 工作负载身份设置错误 403
【发布时间】:2020-05-08 13:24:38
【问题描述】:

我们已将 CloudSQL 代理设置为我们基于 Java / Tomcat 的应用程序之一的 sidecar 容器。

以下是我们如何设置工作负载身份以使我们的应用能够通过 cloudsql 代理连接到 CloudSQL:

  1. 创建 Cloud IAM 服务帐号并授予其 SQL 客户端权限:

  2. 如下设置策略绑定:

    gcloud iam service-accounts add-iam-policy-binding \
      --role roles/iam.workloadIdentityUser \
      --member "serviceAccount:[PROJECT_ID].svc.id.goog[default/default]" \
     [GSA_NAME]@[PROJECT_ID].iam.gserviceaccount.com
    
    
  3. 为 GKE 服务帐号添加注释:

    kubectl annotate serviceaccount \
      --namespace [K8S_NAMESPACE] \
      [KSA_NAME] \
      iam.gke.io/gcp-service-account=[GSA_NAME]@[PROJECT_ID].iam.gserviceaccount.com
    
  4. 但是当我们使用以下方法进行测试时:

    kubectl run --rm -it \
      --generator=run-pod/v1 \
      --image google/cloud-sdk:slim \
      --serviceaccount [KSA_NAME] \
      --namespace [K8S_NAMESPACE] \
      workload-identity-test
    

尽管按照on this page 的解释正确地做所有事情,仍然会导致:

Error 403: The client is not authorized to make this request., notAuthorized

【问题讨论】:

    标签: google-cloud-platform google-kubernetes-engine google-cloud-iam cloud-sql-proxy


    【解决方案1】:

    事实证明,Google Cloud IAM 中有 a glitch,这似乎会影响服务帐户。

    1. 删除在第 1 步中创建的现有 Cloud IAM 服务帐号以及与其关联的角色。
    2. 再次重新创建服务帐户(具有相同的考试权限)

    应该可以解决问题。当然,您必须再次重做第 2 步和第 3 步才能完成设置,但它可以正常工作。

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 2022-01-14
      • 2022-09-30
      • 2021-01-23
      • 2021-10-24
      • 2021-11-03
      • 1970-01-01
      • 2017-07-06
      相关资源
      最近更新 更多