当前位置: 首页 > 知识库问答 >
问题:

所有命名空间的GKE工作负载标识服务帐户

应俊爽
2023-03-14

我按照指南设置GCP的工作负载标识,并使其适用于针对默认库伯内特斯命名空间配置的服务号,如下所示:

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]]"

有什么办法可以做到这一点吗?

共有1个答案

龙兴贤
2023-03-14

无法将所有名称空间设置为Kubernetes服务帐户(KSA)。也许您需要获取每个名称空间并为每个名称空间进行绑定,自动化脚本可以帮助您完成n次绑定(每个名称空间1次)。

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

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

得到这样的结果:

default
kube-public
kube-system

可以使用绑定自动化脚本来迭代它们。

 类似资料:
  • Google docu表示,工作负载标识可以用来授权GKE POD使用Google API提供的服务(而且效果很好)。它还表示,将有一个自动创建的标识池,名为PROJECT\u ID.svc。id.goog。 关于工作负载标识联合的Docu说:“您可以使用工作负载标识池来组织和管理外部标识。” 在我按照这里所述配置了工作负载标识(并且工作正常)之后,我正在尝试检索项目中现有的工作负载标识池,我希望

  • 我最近一直在使用GKE工作负载标识特性。我想更详细地了解组件的工作原理。 GCP客户端代码(或其他语言SDK)适用于GCE元数据方法 我想现在对我来说主要的难题是验证呼叫舱的身份。最初我认为这将使用令牌评论API,但现在我不确定谷歌客户端工具如何知道使用安装到pod中的服务号令牌... 编辑后续问题: 问题1:在第2步和第3步之间,是对通过节点池上的设置GKE_metadata_服务器路由到GKE

  • 我试图在Composer 2环境中运行GKEStartPodOperator/KubernetesPodOperator任务,该环境在自动驾驶模式下使用GKE集群。我们有一个现有的Composer 1环境,GKE集群不处于自动驾驶模式。我们使用谷歌云平台服务(BigQuery、GCS等)进行身份验证的任务在Composer 2环境中失败,但在Composer 1环境中成功。 在日志文件中,我可以看

  • 我目前正在使用GKE Workload Identity从GKE内部访问谷歌云平台资源。这对谷歌云存储和其他平台资源非常有效。 然而,当我试图使用GKE Workload Identity访问Google工作表时,我遇到了一个“身份验证范围不足”的问题。 当我为服务帐户生成密钥文件并在代码中使用它时,我可以手动将作用域设置为。它的工作原理与预期一样,我可以访问该表。如果我将范围更改为,我得到了与G

  • 我正在尝试在GCP中使用Python创建一个服务帐户。当我将env var GOOGLE_APPLICATION_凭证设置为JSON凭证文件,并使用以下代码时,这一切都很好: 但是,以下代码在使用Workload Identity Federation的CI-Github操作中失败: 失败与错误: 我正在使用以下Github操作向Google进行身份验证 有人能帮忙吗?

  • 我使用Cloud Composer在Kubernetes中运行任务来安排作业。我在与composer相同的GKE中设置了一个新的节点池,并使用它来运行Kubernetes任务。在该节点池中,我使用默认服务帐户,但将该帐户绑定到与Composer节点池相同的服务帐户,使用IAM策略绑定,并启用工作负载标识。 然而,我可以从错误中看到kubernetes服务号缺少作曲家服务号可以访问的一些东西的权限。