• K8S 权限控制访问之 rbac


    RBAC API类型

    RBAC API 所声明的四种顶级类型【Role、ClusterRole、RoleBinding 和 ClusterRoleBinding】。用户可以像与其他 API 资源交互一样,(通过 kubectl API 调用等方式)与这些资源交互。

    Role 和 ClusterRole

    在 RBAC API 中,一个角色包含一组相关权限的规则。权限是纯粹累加的(不存在拒绝某操作的规则),即只能给权限累加,不存在给了XX权限,然后去掉XX01权限的情况。角色可以用 Role 来定义到某个命名空间(namespace)上, 或者用 ClusterRole 来定义到整个集群作用域(所有namespace)。

    一个 Role 只可以用来对某一命名空间中的资源赋予访问权限。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: pod-reader
      namespace: default
    rules:
    - apiGroups: [""] # "" 指定核心 API 组
      resources: ["pods"]
      verbs: ["get", "watch", "list"]
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: secret-reader
      # 此处的 "namespace" 被省略掉是因为 ClusterRoles 是没有命名空间的。
    rules:
    - apiGroups: [""]
      resources: ["secrets"]
      verbs: ["get", "watch", "list"]

    RoleBinding 和 ClusterRoleBinding

    角色绑定(RoleBinding)是将角色中定义的权限赋予一个用户或者一组用户。 它包含若干主体【subjects】(users、groups或 service accounts)的列表和对这些主体所获得的角色引用。

    可以使用 RoleBinding 在指定的命名空间中执行授权,或者在集群范围的命名空间使用 ClusterRoleBinding 来执行授权。

    一个 RoleBinding 可以引用同一的命名空间中的 Role。

    RoleBinding示例

    将 “pod-reader” 角色授予在 “default” 命名空间中的用户 “jane”; 这样,用户 “jane” 就具有了读取 “default” 命名空间中 pods 的权限。

    在下面的例子中,角色绑定使用 roleRef 将用户 “jane” 绑定到前文创建的角色 Role,其名称是 pod-reader。

    apiVersion: rbac.authorization.k8s.io/v1
    # 此角色绑定,使得用户 "jane" 能够读取 "default" 命名空间中的 Pods
    kind: RoleBinding
    metadata:
      name: read-pods
      namespace: default
    subjects:
    - kind: User
      name: jane # 名称大小写敏感
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role #this must be Role or ClusterRole
      name: pod-reader # 这里的名称必须与你想要绑定的 Role 或 ClusterRole 名称一致
      apiGroup: rbac.authorization.k8s.io
    作者:tigergao
    功不唐捐 玉汝于成
  • 相关阅读:
    《网络攻防》实验八:Web基础
    《网络攻防》实验七:网络欺诈技术防范
    《网络攻防》实验六:信息搜集与漏洞扫描
    《网络攻防》实验五:MSF基础应用
    《网络攻防》实验四:恶意代码分析
    《网络攻防》实验三:免杀原理与实践
    《网络攻防》实验二:后门原理与实践
    20145213《网络对抗》逆向及Bof基础
    《课程设计》——cupp的使用
    《课程设计》——foremost的使用
  • 原文地址:https://www.cnblogs.com/tigergaonotes/p/14741847.html
Copyright © 2020-2023  润新知