• RBAC介绍


    一、前言

         Kubernetes 中的角色基于访问控制(Role-Based Access Control,RBAC)是一种权限管理机制,用于控制用户和应用程序对 Kubernetes 资源的访问。RBAC 通过定义一组角色(Roles)和角色绑定(RoleBindings)来实现对资源的精细访问控制

    二、组件

    角色(Role)和集群角色(ClusterRole)

    Role:在命名空间范围内定义一组权限。每个 Role 包含可以对资源执行的操作列表

    ClusterRole:在集群范围内定义一组权限,适用于所有命名空间或集群范围的资源

    role示例

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: Role
    3. metadata:
    4. namespace: default #指定命名空间
    5. name: pod-reader
    6. rules:
    7. - apiGroups: [""] # 空字符串表示核心 API 组
    8. resources: ["pods"] #限定资源,这里限定pod
    9. verbs: ["get", "list", "watch"] #配置拥有的权限,这里只拥有只读权限

    ClusterRole示例

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: ClusterRole
    3. metadata:
    4. name: cluster-admin
    5. rules:
    6. - apiGroups: ["*"]
    7. resources: ["*"]
    8. verbs: ["*"]

    角色绑定(RoleBinding)和集群角色绑定(ClusterRoleBinding)

    RoleBinding:将 Role 绑定到用户或组,使其在特定命名空间内具有该 Role 定义的权限

    ClusterRoleBinding:将 ClusterRole 绑定到用户或组,使其在整个集群范围内具有该 ClusterRole 定义的权限

    RoleBinding示例

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: RoleBinding
    3. metadata:
    4. name: read-pods
    5. namespace: default
    6. subjects: #定义用户信息
    7. - kind: User
    8. name: jane
    9. apiGroup: rbac.authorization.k8s.io
    10. roleRef:
    11. kind: Role
    12. name: pod-reader
    13. apiGroup: rbac.authorization.k8s.io

    ClusterRoleBinding示例

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: ClusterRoleBinding
    3. metadata:
    4. name: admin-binding
    5. subjects:
    6. - kind: User
    7. name: admin
    8. apiGroup: rbac.authorization.k8s.io
    9. roleRef:
    10. kind: ClusterRole
    11. name: cluster-admin
    12. apiGroup: rbac.authorization.k8s.io

    三·、RBAC 工作原理

    RBAC 通过 RoleClusterRole 定义权限,通过 RoleBindingClusterRoleBinding 将这些权限分配给用户、组或服务账户

    1.当用户或服务账户尝试执行某个操作时,Kubernetes API 服务器会检查与该用户相关的 RoleBindings 和 ClusterRoleBindings,以确定是否允许执行该操作

    2.RoleBindings 和 ClusterRoleBindings 指定了 Role 或 ClusterRole,并将其与一个或多个主体(subjects)关联

  • 相关阅读:
    你真的研究过对象数组去重吗?
    [Azure - Security] Azure的多重身份验证(二):在Azure portal 登陆时候设置MFA/2FA验证
    河南短视频代运营|短视频代运营能不能纯佣金合作
    十七、文件(2)
    【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存
    jmeter监控服务器的资源使用
    SqlServer 开启审计功能
    奇葩需求记录 各个系统取数据联表展示
    数据结构与算法设计分析——常用搜索算法
    产品升级!全球尺度下原核基因组关键基因共进化无标题
  • 原文地址:https://blog.csdn.net/ApexPredator/article/details/140045728