【问题标题】:IAM and RBAC Conflicts on Google Cloud Container Engine (GKE)Google Cloud Container Engine (GKE) 上的 IAM 和 RBAC 冲突
【发布时间】:2018-02-07 06:18:05
【问题描述】:

上下文

通过 Google Cloud IAM 功能管理对 Google Cloud (GKE) kubernetes 集群的访问;

  1. 管理员邀请新用户(使用他们的 google 帐户/登录名)并为他们分配一个角色。

    下面的示例角色是“Container Engine Viewer”,它将允许用户访问 Kubernetes 集群并运行所有“查看”操作。

  2. 用户可以在其本地计算机上使用gcloud auth login,然后使用gcloud container clusters get-credentials 向Google IAM 进行身份验证,并让gcloud 工具将它们写出kubernetes 配置文件,以便使用集群。

  3. 然后用户可以使用kubectl 访问集群。在上面的例子中,读取工作......写入/更改不;一切顺利!

问题

GKE kubernetes 集群的 IAM 角色非常简单,“管理员、读/写、读”。

要对 Kubernetes 集群进行更细粒度的控制,Kubernetes RBAC 应该在集群中使用,允许我将用户限制为单个命名空间、单个 API 端点、单个操作等。

但是,没有为用户指定 IAM 角色;用户无法对集群进行身份验证(RBAC 是授权,而不是身份验证)。

然而,我可以设置的最低权限 IAM 角色是“容器引擎查看器”,因此无论我使用 Kubernetes RBAC 实施的限制如何,我的所有用户仍然具有完全读取权限。

问题

有没有人找到一种方法来确保 GKE 中的所有权限都来自 RBAC,基本上取消来自 IAM 的权限?

【问题讨论】:

    标签: kubernetes google-compute-engine google-kubernetes-engine google-iam kubernetes-security


    【解决方案1】:

    奇怪的是,写出问题能让你更快得到答案吗?

    Google Cloud 的 IAM 中有一个新的“Alpha”功能,这是我上次尝试解决这个问题时没有的;

    在 IAM > 角色下,您现在可以使用自己的权限子集创建自定义 IAM 角色。

    我创建了一个最小角色,它允许gcloud container clusters get-credentials 工作,但没有别的,允许 RBAC 完全管理 kubernetes 集群内的权限。

    初步测试看起来不错。

    IAM 角色屏幕截图(具有所需权限)如下。

    Minimal IAM role with GKE cluster access

    New IAM roles alpha functionality

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 2017-03-26
      • 2016-06-01
      • 2021-05-28
      相关资源
      最近更新 更多