Context
通过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
来访问群集 . 通过上面的例子,读取工作...写入/更改不;都好!
The Problem
GKE kubernetes集群的IAM角色非常简单,“Admin,Read / Write,Read” .
为了对kubernetes集群进行更细粒度的控制,应在集群中使用Kubernetes RBAC,允许我将用户限制为单个命名空间,单个API endpoints ,单个操作等 .
但是,没有为用户指定IAM角色;用户无法对群集进行身份验证(RBAC是授权,而不是身份验证) .
但是,我可以设置的最低权限IAM角色是"Container Engine Viewer",因此无论我使用Kubernetes RBAC实施哪些限制,我的所有用户仍然具有完全读取权限 .
Question
有没有人找到一种方法来确保GKE中的所有权限来自RBAC,基本上取消了IAM的权限?
1 回答
很奇怪写出这个问题会让你早日得到答案吗?
Google Cloud的IAM中有一个新的“Alpha”功能,上次我试图解决这个问题时并没有这个功能 .
在IAM>角色下,您现在可以使用自己的权限子集创建自定义IAM角色 .
我创建了一个最小角色,允许
gcloud container clusters get-credentials
工作,但没有别的,允许kubernetes集群内的权限由RBAC完全管理 .初步测试看起来不错 .
IAM角色截图(具有所需权限)如下 .
Minimal IAM role with GKE cluster access
New IAM roles alpha functionality