kubernetes – Google云容器引擎(GKE)上的IAM和RBAC冲突

上下文

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

>管理员邀请新用户(使用他们的谷歌帐户/登录)并为他们分配一个角色.

下面的示例角色是“Container Engine Viewer”,它允许用户访问kubernetes集群并运行所有“视图”操作.
>用户可以在本地计算机上使用gcloud auth登录,然后使用gcloud容器集群获取凭据对Google IAM进行身份验证,并让gcloud工具将其写入kubernetes配置文件,准备使用群集.
>然后,用户可以使用kubectl访问群集.通过上面的例子,读取工作…写入/更改不;都好!

问题

GKE kubernetes集群的IAM角色非常简单,“Admin,Read / Write,Read”.

为了更好地控制kubernetes集群,Kubernetes RBAC
应该在集群中使用,允许我将用户限制为单个命名空间,单个API端点,单个操作等.

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

然而,我可以设置的最低权限IAM角色是“Container Engine Viewer”,因此无论我使用Kubernetes RBAC实施的限制如何,我的所有用户仍然具有完全读取权限.

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

最佳答案
很奇怪写出这个问题会让你早日得到答案吗?

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

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

我创建了一个最小角色,允许gcloud容器集群获取凭据工作,但没有别的,允许kubernetes集群内的权限由RBAC完全管理.

初步测试看起来不错.

IAM角色截图(具有所需权限)如下.

Minimal IAM role with GKE cluster access

New IAM roles alpha functionality

转载注明原文:kubernetes – Google云容器引擎(GKE)上的IAM和RBAC冲突 - 代码日志