7

语境

通过 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 的权限?

4

1 回答 1

8

奇怪的是,写出问题如何让您更快地得到答案吧?

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

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

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

初步测试看起来不错。

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

具有 GKE 集群访问权限的最小 IAM 角色

新的 IAM 角色 alpha 功能

于 2017-08-29T17:40:04.950 回答