【问题标题】:GCP IAM Binding for GKE Node Pool using Workload Identity使用工作负载身份为 GKE 节点池绑定 GCP IAM
【发布时间】:2022-01-14 06:09:58
【问题描述】:

我正在使用 Cloud Composer 在 Kubernetes 中运行任务来安排作业。我已经在与 composer 相同的 GKE 中设置了一个新节点池,并使用它来运行 Kubernetes 任务。在该节点池中,我使用默认服务帐户,但将该帐户绑定到与 Composer 节点池相同的服务帐户,使用 IAM 策略绑定并启用工作负载身份。

但是,我可以从错误中看到 kubernetes 服务帐户缺少对 composer 服务帐户确实有权访问的某些内容的权限。这是没有意义的,因为 kubernetes 服务帐户具有与作曲家服务帐户绑定的 IAM 策略,因此它们应该具有完全相同的权限。但无论出于何种原因,这都是不正确的。非常感谢任何有关查看位置的提示...

【问题讨论】:

  • 您使用的是预定义角色还是自定义角色?您是否以某种方式更改了 GCP 中的默认权限?你能分享你的确切错误吗?
  • 当您绑定角色时,您将提供特定的 SA/预定义角色,可以在 Cloud ComposerKubernetes engine 中找到这些角色。每个角色都有不同的权限。你用过哪些角色,缺少哪些角色?
  • 查看服务帐户日志后,我注意到虽然在 GKE 上启用了工作负载身份,但在节点池上未启用,因此该池中的节点默认使用错误的服务帐户。 .
  • 所以简而言之,您只需要像this docs 中提到的那样在节点池上打开Workload Identity?如果是这样,您能否为有类似问题的人写一个答案?
  • 您是否仍有此问题或启用 Workload Identity 解决了您的问题?

标签: kubernetes google-cloud-platform binding google-cloud-iam workload-identity


【解决方案1】:

在节点池上启用工作负载身份是解决方案。使用 terraform 的解决方案如下所示:

resource "google_container_node_pool" "google_container_node_pool_name" {

    workload_metadata_config {
       mode = "GKE_METADATA"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-08
    • 2021-09-01
    • 1970-01-01
    • 2018-09-12
    • 2021-02-23
    • 2021-05-08
    • 2022-01-23
    • 2022-09-30
    相关资源
    最近更新 更多