【云小课】基础服务第55课 带你了解云容器引擎CCE的权限管理

举报
云容器大未来 发表于 2020/08/27 17:39:33 2020/08/27
【摘要】 随着容器化的快速发展,大数据原有的分布式任务调度模式,正在被基于Kubernetes的技术架构所取代。云容器引擎(Cloud Container Engine,简称CCE)是华为云推出的可提供高度可扩展的、高性能的企业级Kubernetes集群,支持社区原生应用和工具,支持节点和工作负载自动弹性伸缩。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序,快速高效的将微服务部署在云端。

随着容器技术的快速发展,原有的分布式任务调度模式正在被基于Kubernetes的技术架构所取代。云容器引擎(Cloud Container Engine,简称CCE)是华为云推出的高度可扩展的、高性能的企业级Kubernetes集群,支持社区原生应用和工具。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序,快速高效的将微服务部署在云端。

为方便企业中的管理人员对集群中的资源权限进行管理,CCE后台提供了多种维度的细粒度权限策略和管理方式。CCE的权限管理包括“集群权限”和“命名空间权限”两种能力,分别从集群和命名空间两个层面对用户组或用户进行细粒度授权,具体解释如下:

  • 集群权限:是基于IAM系统策略的授权,可以让用户组拥有“集群管理”、“节点管理”、“节点池管理”、“模板市场”、“插件管理”权限。

  • 命名空间权限:是基于Kubernetes RBAC能力的授权,可以让用户或用户组拥有Kubernetes资源的权限,如“工作负载”、“网络管理”、“存储管理”、“命名空间”等的权限。

基于IAM系统策略的“集群权限”与基于Kubernetes RBAC能力的“命名空间权限”,两者是完全独立的,互不影响,但要配合使用。同时,为用户组设置的权限将作用于用户组下的全部用户。当给用户或用户组添加多个权限时,多个权限会同时生效(取并集)。

下面我们以一个公司为例进行介绍。

通常一个公司中有多个部门或项目,每个部门又有多个成员,所以在配置权限前需要先进行详细设计,下图为某公司某部门的组织架构图和相关人员的权限设计,我们将按照该设计对每个角色的权限设置进行演示:


主管:DAVID

用户“DAVID”为该公司某部门的主管,根据权限设计我们需要为其配置CCE服务的所有权限(包括集群权限和命名空间权限),因此需要在统一身份认证服务 IAM中单独为DAVID创建用户组“cce-admin”,并配置所有项目的权限:“CCE Administrator”,这样主管DAVID的权限就配置好了。

温馨提示:

  • CCE Administrator:CCE的管理员权限,拥有该服务的所有权限,不需要再赋予其他权限。

  • CCE FullAccess、CCE ReadOnlyAccess:CCE的集群管理权限,仅针对与集群相关的资源(如集群、节点)有效,您必须确保同时配置了“命名空间权限”,才能有操作Kubernetes资源(如工作负载、Service等)的权限。


运维组长:JAMES

用户“JAMES”为该部门的运维组长,需要设置所有项目的集群权限和所有命名空间的只读权限。

我们需要在统一身份认证服务 IAM中先为用户“JAMES”单独创建用户组“cce-sre”并将其添加到用户组“cce-sre”中,然后为用户组“cce-sre”配置所有项目的集群权限:“CCE FullAccess”,用户组“cce-sre”便拥有了所有项目的集群管理权限,接下来还需要为其设置命名空间的只读权限。

由于所有组长和工程师均需要命名空间的只读权限,因此用户“JAMES”的命名空间权限我们将与其他开发人员一起添加。

为所有组长和工程师添加所有集群和命名空间的只读权限

我们可以在统一身份认证服务 IAM中再创建一个只读用户组“read_only”,然后将相关用户都添加到此用户组中。

  • 两个开发工程师虽然他们不需要配置集群的管理权限,但也需要查看CCE控制台,因此需要有集群的只读权限才能满足需求。

  • 运维工程师需要北京四集群的管理权限,为方便管理,这里我们先为其赋予集群的只读权限。

  • 运维组长已经拥有了所有集群的管理权限,为方便管理,我们也可以将其添加到“read_only”用户组中,为其赋予集群的只读权限。


如下图,我们将JAMES、ROBERT、WILLIAM、LINDA、PETER五个用户都添加到用户组“read_only”中:

接下来为用户组“read_only”赋予集群的只读权限。

然后返回CCE控制台,为这五个用户所在的用户组增加命名空间的只读权限,单击左侧栏目树中的“权限管理 > 命名空间权限”,为用户组“read_only”逐个赋予所有集群的“view”权限。

设置完成后,运维组长“JAMES”就拥有了所有项目的集群管理权限和所有命名空间的只读权限,而开发组长“ROBERT”、运维工程师“WILLIAM”以及两位开发工程师“LINDA”和“PRTER”则拥有了所有集群和命名空间的只读权限。


开发组长:ROBERT

用户“ROBERT”作为开发组的组长,虽然在上一步中已经为其设置了所有集群和命名空间的只读权限,但显然还不够,还需要为其设置所有命名空间的管理权限。

因此需要再在CCE控制台的“权限管理 > 命名空间权限”中单独为其赋予所有集群下全部命名空间的管理员权限。


运维工程师:WILLIAM

运维工程师“WILLIAM”虽然也有了所有集群和命名空间的只读权限,但还需要在统一身份认证服务 IAM中为其设置北京四的集群管理权限,因此我们单独为其创建一个用户组“cce-sre-b4”,然后配置北京四项目的“CCE FullAccess”。

由于之前已经为其设置过所有命名空间的只读权限,所以运维工程师“WILLIAM”现在就拥有了北京四的集群管理权限和所有命名空间的只读权限。


开发工程师:LINDA、PETER

“LINDA”和“PETER”是开发工程师,由于前面已经在用户组“read-only”中为两位工程师配置了集群和命名空间的只读权限,这里只需要在CCE控制台的“权限管理 > 命名空间权限”中再另外配置相应命名空间的编辑权限即可。

至此,该部门的所有权限就设置完成了,你看明白了吗?


小问题:

1、能否只配置命名空间权限,不配置集群管理权限?

答:由于界面权限是由IAM系统策略进行判断,所以,如果未配置集群管理权限,就没有打开界面的权限。


2、那不配置集群管理权限的情况下,是否可以使用API呢?

答:答案也是否定的,因为API都需要进行IAM的token认证。


3、那不配置集群管理权限时,是否可以使用kubectl命令呢?

答:答案是肯定的。但前提是要先从界面上下载kubectl配置文件。所以,如果先配置了集群权限,然后再界面下载认证文件。后面再删除集群管理权限(保留命名空间权限),依然可以使用kubectl来操作k8s集群。



容器客户支持团队&资料团队联合出品

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200