【问题标题】:Why the namepsace bit in the RoleBinding definition kubernetes为什么RoleBinding定义kubernetes中的namepsace位
【发布时间】:2021-07-08 06:57:31
【问题描述】:

RBAC 在 Kubernetes 中的工作方式我不太了解。

我会陈述我理解的和不理解的。基于documentation,RBAC API定义了4种kubernetes对象:

  • 角色
  • 集群角色
  • 角色绑定
  • 集群角色绑定

角色
角色定义了一组特定命名空间内的权限。 Role 定义包含一个命名空间字段,并且 Role 对象是在该命名空间中创建的。来自文档:

角色总是在特定的命名空间内设置权限;创建角色时,必须指定它所属的命名空间。

我想这意味着角色中定义的所有规则应用于该命名空间中的对象。我会继续假设这个假设是正确的,否则请纠正我。

集群角色

相比之下,ClusterRole 是一个非命名空间资源。

据我所知(再次,如果我错了,请纠正我)ClusterRole 用于定义规则,这些规则定义了与未绑定到任何命名空间(例如节点)的资源有关的权限。

角色绑定 RoleBinding 对象是一个命名空间对象。它的功能是将Roles绑定到subjects,即授予具有特定角色的主题(用户、ServiceAccounts、组)。它还可以将主题与 ClusterRoles 绑定。

ClusterRoleBinding
我对这篇文章的方式不太感兴趣。

问题

我的问题是,为什么 RoleBinding 定义中有 namespace 元数据位?如果确实如我在 Role 部分中假设的那样,Role 仅授予该 Role 的指定命名空间中的对象权限,那么该限制已在 Role 对象本身中定义,为什么又在 RoleBinding 对象中定义?

当我写这些行时,我突然想到了这个问题的可选答案,请告诉我这是否正确:

RoleBinding 还可以将 ClusterRole 绑定到主题列表,并且在该 ClusterRole 中定义的权限将仅适用于 RoleBinding 对象中指定的命名空间中的资源。这就是为什么我们需要在 RoleBinding 定义中添加一个namespace 位。事实上,当我们使用 RoleBinding 来绑定 Role 而不是 ClusterRole 时,这并不是必需的。

对吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    如你所说。 RoleBinding 需要指定 namespace,因为它还可以引用未命名空间的 ClusterRole。因此,ClusterRole 可以(在某些情况下)被视为特定命名空间中角色的模板。

    ClusterRole edit 是这个用例的一个很好的例子:您可以在 RoleBinding(命名空间)中引用这个 ClusterRole(未命名空间):

    apiVersion: rbac.authorization.k8s.io/v1namespace.
    kind: RoleBinding
    metadata:
      name: editor
      namespace: my-namespace
    subjects:
    - kind: User
      name: jane
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: edit
      apiGroup: rbac.authorization.k8s.io 
    

    因此用户jane 将获得在ClusterRole edit 中定义的权限,但只能在命名空间my-namespace 中。

    【讨论】:

    • 谢谢!如果是这样,为什么我们首先需要一个 Role 对象?为什么不直接使用 ClusterRoles?
    • 不客气。 ClusterRoles 在整个集群中都是可见的。 Clusterroles 仅在特定的命名空间中。如果您只有 ClusterRoles,这可能会变得混乱(有时您只需要特定命名空间中的角色)
    猜你喜欢
    • 2021-11-03
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 2021-07-14
    • 2018-12-27
    • 2014-03-25
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多