语境
通过 Google Cloud IAM 功能管理对 Google Cloud (GKE) kubernetes 集群的访问;
管理员邀请新用户(使用他们的 google 帐户/登录名)并为他们分配一个角色。
下面的示例角色是“Container Engine Viewer”,它将允许用户访问 Kubernetes 集群并运行所有“查看”操作。
用户可以
gcloud auth login
在他们的本地机器上使用 ,然后gcloud container clusters get-credentials
向 Google IAM 进行身份验证,并让该gcloud
工具将它们写出一个 kubernetes 配置文件,准备好使用集群。然后用户可以使用它
kubectl
来访问集群。在上面的例子中,读取工作......写入/更改不;都好!
问题
GKE kubernetes 集群的 IAM 角色非常简单,“管理员、读/写、读”。
为了对 Kubernetes 集群进行更细粒度的控制,应该在集群内使用 Kubernetes RBAC ,允许我将用户限制为单个命名空间、单个 API 端点、单个操作等。
但是,没有为用户指定 IAM 角色;用户无法对集群进行身份验证(RBAC 是授权,而不是身份验证)。
然而,我可以设置的最低权限 IAM 角色是“容器引擎查看器”,因此无论我使用 Kubernetes RBAC 实施的限制如何,我的所有用户仍然具有完全读取权限。
问题
有没有人找到一种方法来确保 GKE 中的所有权限都来自 RBAC,基本上取消来自 IAM 的权限?