Kubernetes RBAC:权限管理的全面指南
1. Kubernetes 系统组概述
在 Kubernetes 中,系统组用于对不同类型的请求和用户进行分类。以下是一些常见的系统组及其用途:
| 组名 | 用途 |
| — | — |
| system:unauthenticated | 分配给每个未经身份验证的请求 |
| system:authenticated | 分配给已通过身份验证的用户 |
| system:masters | 成员对 Kubernetes API 具有无限制访问权限的组 |
| system:serviceaccounts | 包含集群中所有服务账户的组 |
| system:serviceaccounts: | 包含特定命名空间中所有服务账户的组 |
2. 基于角色的访问控制(RBAC)基础
2.1 RBAC 概念
在 Kubernetes 中,角色(Role)定义了主体(如用户或服务账户)对特定资源可以执行的操作。通过角色绑定(RoleBinding),可以将角色分配给主体。角色和角色绑定都是 Kubernetes 资源,可以像管理其他资源一样进行创建和管理,并且它们与特定的命名空间相关联。
主体、角色和角色绑定之间存在多对多的关系,即一个主体可以拥有多个角色,一个角色也可以应用于多个主体。角色绑定用于建立主体和角色之间的关系,它包含对主体列表和特定角色的引用。
2.2 角色示例
以下是一个允许访问核心资源的角色定义示例: