【问题标题】:GKE Workload Identity service account for all namespaces所有命名空间的 GKE Workload Identity 服务帐号
【发布时间】:2020-05-01 06:09:47
【问题描述】:

我正在关注guide 来设置 GCP 的工作负载标识,并使其适用于针对默认 Kubernetes 命名空间配置的服务帐户,如下所示:

gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:[PROJECT_ID].svc.id.goog[default/[KSA_NAME]]" \
  [GSA_NAME]@[PROJECT_ID].iam.gserviceaccount.com

我想知道是否有办法为所有 k8s 命名空间创建绑定;如下所示,我已将默认命名空间替换为 *:

--member "serviceAccount:[PROJECT_ID].svc.id.goog[*/[KSA_NAME]]"

有什么办法吗?

【问题讨论】:

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


    【解决方案1】:

    无法将所有命名空间设置为 Kubernetes 服务帐户 (KSA)。 也许您必须获取每个命名空间并为每个命名空间进行绑定,自动化脚本可以帮助在此过程中执行 n 次(每个命名空间 1 次)。

    您只能使用以下 kubectl 命令获取命名空间列名称:

    kubectl get ns --all-namespaces --no-headers -o custom-columns=":metadata.name"
    

    得到这样的东西:

    default
    kube-public
    kube-system
    

    这可用于使用绑定自动化脚本对其进行迭代。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 2020-02-28
      • 2022-12-29
      • 2023-03-11
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 2021-10-13
      • 2019-08-30
      相关资源
      最近更新 更多