【发布时间】:2021-06-29 13:07:40
【问题描述】:
我的团队最近发现 default 服务帐户,由 K8S 管理并默认关联到 pod,在集群中具有完整的读写权限。我们可以列出正在运行的 pod 中的秘密,创建新的 pod....
我们觉得这很奇怪,因为我们认为default 服务帐户没有任何权限,甚至只是读取权限。因此,我们决定在集群中搜索与该服务帐户关联的角色绑定或集群角色绑定,但找不到。
在 K8S 集群中,default 服务帐户是否没有与之关联的基本角色绑定?为什么我们没有?如果我们没有任何权限,为什么服务帐户对集群拥有完全权限,而不是根本没有?最后,我们如何修改它使其在集群中没有权限?
明确一点:我们的集群中有多个命名空间,每个命名空间都有自己的default 服务帐户。但是,它们都没有与之关联的任何角色绑定,并且它们都具有完整的集群权限。
【问题讨论】:
-
我有几个问题:1)根本没有RoleBindings或ClusterRoleBindings? 2) 您是使用托管 Kubernetes 服务还是自己安装了集群?
-
1) 我们有 4 个跨所有命名空间的 RoleBindings 和 13 个 ClusterRoleBindings,它们都是由 K8S、我们安装的工具以及项目中以前的人手动创建的其他工具创建的。虽然没有与默认帐户相关联 2)它是我们自己的集群。它是使用 kops 设置的
-
跟进问题 n°2:创建集群时是否启用了 RBAC 支持?默认情况下,kops 不启用 RBAC。禁用 RBAC 后,所有服务帐户都拥有不受限制的权限。
-
是的,我们没有。我通过了kube-api-server,授权模式是
AlwaysAllow。感谢您的帮助!
标签: kubernetes rbac