他们是一种使用 ClusterRolebinding 创建 ClusterRole 的方法,它可以提供创建 ClusterRoles/ClusterRolebindings 的权限,并以某种方式添加一个条件,它可以限制在一个命名空间中,而不能在其他命名空间中创建资源?
由于 ClusterRole 和 ClusterRolebinding 没有命名空间,我正在寻找一种专门用于提供创建 ClusterRole 和 ClusterRolebinding 权限的方法,然后限制特定于命名空间的其他资源创建。
RoleBinding 无法实现这一点,因为它只能限制到命名空间,而不能提供创建非命名空间资源的权限。
答案 0 :(得分:1)
据我所知,这就是您想要实现的目标:
如果是,那么您可以尝试一下。
默认情况下,您的 Kubernetes 集群带有一组默认的 ClusterRole
对象。特别是,您将关注两个默认集群角色:
通过使用 edit
或 RoleBinding
将 ClusterRoleBinding
集群角色绑定到主题,授予主题访问权限以编辑最常见的资源,如 pod、部署、秘密等。
然而,admin
集群角色包含 edit
集群角色所包含的访问权限以及对其他命名空间资源的访问权限,特别是对管理命名空间有用的两个资源:>
如果您使用 admin
将此 RoleBinding
集群角色绑定到特定命名空间内的主题,则您有效地赋予该主题管理命名空间的能力,包括在该命名空间内创建另一个 RoleBinding
命名空间,让其他主体可以访问该命名空间。
举例说明:
You --(RoleBinding to admin ClusterRole)--> NamespaceAdmin
NamespaceAdmin --(RoleBinding to some Role or ClusterRole)--> OtherSubjects
由于 RoleBinding
仅限于特定命名空间,因此命名空间管理员只能在该命名空间内拥有 admin
访问权限,而不能在其他命名空间或集群级别造成严重破坏。