k8s——RBAC认证中心
一、整体流程认证 → 授权 → 准入控制在 Kubernetes 中所有操作都要通过 API Server。当你或某个程序想对集群做任何事比如创建一个 Pod必须经过三步检查认证你是谁授权你能做什么准入控制是否有额外的规则要检查或修改请求1.1 认证Authentication目的验证客户端身份。方式Token 认证客户端拿着一个密钥token来请求。SSL/TLS 认证双方通过证书互相确认身份Kubernetes 最常用。账号类型UserAccount现实中的人比如管理员、开发者使用的账号。ServiceAccountPod 里的程序访问 API Server 时使用的账号。每个命名空间会自动创建一个default的 ServiceAccount。可以把ServiceAccount理解成“程序的身份证”。1.2 授权Authorization认证通过后系统要判断这个用户有没有权限做他想做的事Kubernetes 支持多种授权机制最常用的是RBAC基于角色的访问控制。角色Role一组权限的集合比如“可以读 Pod”。角色绑定RoleBinding把角色绑定给用户或 ServiceAccount。这样设计的好处是不用给每个用户单独配置权限只需要把他们加入合适的角色即可。1.3 准入控制Admission Control在资源真正保存到 etcd集群数据库之前还可以通过准入控制器修改或验证请求。例如修改请求Mutating验证请求Validating你不需要一开始就掌握这部分细节先知道它是“最后一道检查”即可。二、RBAC 核心概念重点RBAC 中有四个关键资源资源类型作用范围说明Role单个命名空间定义在该命名空间内的权限ClusterRole整个集群定义集群级别或跨命名空间的权限RoleBinding单个命名空间把 Role 或 ClusterRole 绑定给用户/ServiceAccount仅限该命名空间ClusterRoleBinding整个集群把 ClusterRole 绑定给用户/ServiceAccount适用所有命名空间举个例子你想让用户lucky只能操作lucky命名空间里的 Pod。创建一个 Role允许操作 Pod。创建一个 RoleBinding把该 Role 绑定给用户lucky。切换到lucky用户后他只能在lucky命名空间里看 Pod。如果你想给所有命名空间的管理员权限可以用ClusterRoleClusterRoleBinding。三、权限规则rules权限是通过rules定义的规则包含以下几项apiGroupsAPI 分组比如表示核心组apps表示应用组。resources资源类型比如pods、services、deployments。verbs允许的操作比如get、list、create、delete。常见动词含义动词说明get获取某个资源list列出所有资源watch监听资源变化create创建资源update更新资源delete删除资源exec进入容器执行命令
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2605620.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!