我正在遵循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]]"
有什么办法吗?
答案 0 :(得分:0)
无法将所有名称空间设置为Kubernetes服务帐户(KSA)。 也许您需要获取每个命名空间并为每个命名空间进行绑定,自动化脚本可以在此过程中帮助完成n次(每个命名空间1次)。
使用以下kubectl命令只能获取名称空间列名称:
kubectl get ns --all-namespaces --no-headers -o custom-columns=":metadata.name"
得到这样的东西:
default
kube-public
kube-system
可以使用绑定自动化脚本来对其进行迭代。