RBAC 介绍
Kubernetes RBAC能力的授权,可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。Kubernetes RBAC API定义了四种类型:Role、ClusterRole、RoleBinding与ClusterRoleBinding,这四种类型之间的关系和简要说明如下:
Role:角色,其实是定义一组对Kubernetes资源(命名空间级别)的访问规则。
RoleBinding:角色绑定,定义了用户和角色的关系。
ClusterRole:集群角色,其实是定义一组对Kubernetes资源(集群级别,包含全部命名空间)的访问规则。
ClusterRoleBinding:集群角色绑定,定义了用户和集群角色的关系。
Role和ClusterRole指定了可以对哪些资源做哪些动作,RoleBinding和ClusterRoleBinding将角色绑定到特定的用户、用户组或ServiceAccount上。如下图所示。
在分布式容器云平台控制台可以授予用户或用户组命名空间权限,可以对某一个命名空间或全部命名空间授权,产品控制台提供如下预置的ClusterRole。
受限人员:对集群命名空间级别控制台可见资源对象的只读权限。
开发人员:对集群命名空间级别控制台可见资源对象的读写权限。
运维人员:对集群命名空间级别资源对象的读写权限,对其他资源对象的只读权限。
管理员权限:对所有集群资源对象的读写权限。
服务资源权限(IAM授权)与Kubernetes RBAC权限的关系
服务资源权限(IAM授权)主要覆盖分布式云容器平台系统功能 和 系统资源(比如注册集群、舰队、集群联邦)的权限管理,而Kubernetes RBAC权限仅针对该集群的Kubernetes资源生效。
配置Kubernetes RBAC权限
步骤 1 登录CCE控制台,在左侧导航栏中选择「权限管理」。
步骤 2 点击权限管理页面的「添加权限」按钮
步骤 3 填写详细的权限信息,然后点击保存按钮
步骤 4 保存权限后,需要「关联权限」才会真正生效,以舰队为例子,如下图。
选择需要关联的用户、命名空间和权限
步骤 4 验证权限是否生效的操作步骤如下。登录单集群控制台后,假设通过前述配置的角色为受限角色(仅授予只读权限)。此时若该用户尝试执行资源创建操作,系统应触发权限拦截机制,阻止其创建行为。
创建configmap报错,操作被拦截