应用现状
云容器引擎的权限控制有两种:集群权限和命名空间权限,以下篇幅将介绍云容器引擎针对集群权限的ClusterRole的创建、权限绑定和验证做简单介绍。
RBAC(Role-Based Access Control) 是基于角色(Role)的访问控制。您可以通过RBAC将权限和集群角色关联,以达到为不同的角色成员配置不同的权限,从而降低账号的安全风险。RBAC的Kubernetes对象的Role或者ClusterRole中包含一组代表相关权限的规则。Role用来在某个命名空间内设置访问权限,ClusterRole则是用于为集群范围的资源定义访问权限。
权限策略说明
您可自行编写权限策略,或通过云容器引擎的控制台创建自定义策略。
ClusterRole创建
针对您要定义集群范围的角色,那么请使用ClusterRole。下面是一个创建ClusterRole的YAML示例。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: clusterRole-test
rules:
- apiGroups:
- metrics.k8s.io
resources:
- pods
verbs:
- get
- list
- watch
关于ClusterRole或者Role的更多信息,请参见Role和ClusterRole。
预置角色权限说明
预置角色 |
集群内RBAC权限 |
---|---|
管理员 | 对集群所有命名空间下 Kubernetes 资源的 RBAC 读写权限, 对集群节点、存储卷、命名空间、配额的读写权限 |
运维人员 | 对集群所有命名空间下控制台可见 Kubernetes 资源的 RBAC 读写权限, 对集群节点、存储卷、命名空间、配额的只读权限 |
开发人员 | 对集群所有命名空间或所选命名空间下控制台可见 Kubernetes 资源的 RBAC 读写权限 |
受限人员 | 对集群所有命名空间或所选命名空间下控制台可见 Kubernetes 资源的 RBAC 只读权限 |
自定义 | 权限由您所选择的 ClusterRole 决定,请在确定所选 ClusterRole 对各类资源的操作权限后再进行授权,以免子账号获得不符合预期的权限 |
云容器引擎控制台创建Kubernetes自定义授权策略
注意本步骤展示创建自定义ClusterRole,过程和创建Role类似。您可以根据实际的场景调整相应操作。
第一步:登录天翼云,进入到云容器引擎控制台,在左侧导航栏选择集群。
第二步:在集群管理界面,点击目标集群名称,然后在左侧导航栏,选择安全管理 -> 角色。
第三步:在角色页面,点击Cluster Role页签,然后点击创建Cluster Role。
第四步:当点击创建Cluster Role后,会弹出一个YAML面板,您需要在面板上输入自定义策略的YAML内容,点击确定即可创建成功。
第五步:在左侧导航栏,选择安全管理 ->授权,进入授权页面,选择子账号下面的用户,点击添加权限。
第六步:进入集群RBAC配置,点击添加权限,选择命名空间,选择自定义,然后选择里之前创建好的Cluster Role,点击下一步。
第七步:授权成功。
第八步:验证。
首先按照下图获取到对应的config,登录到集群主机保存test.config文件中。
查询集群的Pod。
kubectl get pod --kubeconfig=test.config
没有权限查看集群的Service,提示forbidden。
kubectl get services --kubeconfig=test.config
注意当前云容器引擎授权管理仅支持自定义Cluster Role角色与集群内RABAC权限的绑定,暂不支持自定义Role角色与集群内RBAC权限的绑定。