Azure AKS:无需管理员即可使用 get-credentials 完全访问新的 RBAC 集群

Azure AKS: Full access to new RBAC cluster with get-credentials without admin

如果我从 Azure 门户创建全新的 AKS RBAC 集群,在我具有 Contributor 角色的资源组中,然后 运行 az aks get-credentials 没有管理员标志,我可以使用 kubectl 创建和删除 pods 和命名空间,读取集群范围的秘密等等。这是 无需 首先使用 --admin 登录并创建任何 RBAC 角色和绑定。

是什么赋予了我这些权限?基于 discussions I found onlineget-credentials 的非管理员版本下载了 集群用户 角色的 kubeconfig 设置,这应该允许我登录但没有其他太多,out盒子的。

这里有点混乱。因此,如果您创建一个启用 RBAC 的集群,az aks get-credentials 将拉取管理配置(因此具有完全访问权限)。您需要登录创建 roles\bindings\service accounts\users 和 generate kubeconfigs for other users 以便他们将获得您希望他们拥有的权限。

但是,如果您使用 AAD integration 创建启用了 RBAC 的集群,那么 az aks get-credentials 将根据您的 AAD 用户提取凭据,这将不起作用(提取会起作用,访问 k8s 将不起作用) 除非你在 k8s.

里面配置合适的 roles\bindings

我们打开了支持票并得到了答复:Microsoft 确认这是一个错误,他们正在处理:

Having "Azure Kubernetes Service Cluster Admin Role" should not allow you to get-credentials with user profile. However, there is a bug where the client certificate we return in get-credentials --admin is same as get-credentials. It pretty much means clusterUser is as good as clusterAdmin.