文档首页/ 云容器引擎 CCE/ 最佳实践/ 权限/ 为IAM子账号配置命名空间级别的权限
更新时间:2025-01-08 GMT+08:00
分享

为IAM子账号配置命名空间级别的权限

应用场景

在容器化环境中,不同团队和部门对资源的访问需求不尽相同。如果权限设置过于宽泛,可能会导致环境交叉占用、误操作和资源竞争等问题。为了解决这些问题,实现细粒度的权限控制尤为重要。

CCE权限管理是在统一身份认证服务(IAM)与Kubernetes的角色访问控制(RBAC)的能力基础上,打造的细粒度权限管理功能。CCE权限管理支持基于IAM的细粒度权限控制和IAM Token认证,支持集群级别和命名空间级别的权限控制,从而有效地限制用户对特定资源的访问,确保资源使用的隔离性和安全性。

表1 IAM授权与RBAC授权

授权

说明

IAM授权

对用户组进行IAM授权侧重于对云平台资源的访问管理,通过策略控制每个用户组对具体资源的权限。

IAM更关注云资源的细粒度控制。

RBAC授权

对用户组进行RBAC授权是基于角色的,将权限与角色关联,再将角色分配给用户组,通常用于应用内部的访问控制。

RBAC更注重角色和任务的匹配。

本示例主要介绍如何实现命名空间级别的子账号权限管理。了解CCE权限管理的更多内容,请参见权限

解决方案

假设现有两个团队,分别是研发与测试团队和运维团队。两个团队需要访问子账号A创建的集群A,并且对资源的访问需求不同,具体请参见表2

表2 资源访问需求

团队

权限范围

权限内容

研发与测试

集群A的NameSpaceA

访问和操作NameSpaceA,以便进行软件开发和测试活动。

运维

集群A的NameSpaceB

访问NameSpaceB,以便进行软件开发和测试活动。

具体解决方案如下:

  1. 为不同团队创建不同用户组。
  2. 为不同用户组配置不同的权限,即进行IAM授权和RBAC授权。
    图1 解决方案

约束与限制

  • 给用户组授权之前,请您了解用户组可以添加的CCE系统策略,并结合实际需求进行选择,CCE支持的系统策略及策略间的对比,请参见CCE系统权限。若您需要对除CCE之外的其它服务授权,IAM支持服务的所有策略请参见系统权限
  • 具备Security Administrator权限(除IAM切换角色外的所有权限)的用户(例如,默认拥有该权限的admin用户组),才能在CCE控制台的命名空间权限页面进行授权操作,并查看当前用户组及其所拥有的权限。

步骤一:创建用户与用户组

子账号A为研发与测试团队和运维团队分别创建用户和用户组,方便用户和资源的管理。本示例中仅创建3个用户,分别代表开发、测试和运维,您可以根据实际需要创建更多用户。

  1. 登录管理控制台
  2. 鼠标放于右上角用户名处,在下拉的菜单中,单击“统一身份认证”
  3. 在左侧导航栏中选择“用户组”,在页面右上角单击“创建用户组”

    在弹出页面,输入“用户组名称”,单击“确定”。

    本示例需要创建2个用户组,分别为,例如group1(用于开发与测试)和group2(用于运维)。

    在用户组列表中可以看到新建的2个用户组,如图2所示。

    图2 新建的用户组

  4. 在左侧导航栏中选择“用户”,在右上角单击“创建用户”

    根据需求配置“用户基本信息”,单击“下一步”,具体请参见图3

    根据需求选择加入的用户组,单击“创建用户”

    本示例共创建3个用户,分别代表开发、测试和运维,其中开发与测试加入group1,运维加入group2。

    在用户列表中可以看到新建的3个用户,如图4所示。

    图3 创建用户
    图4 新建的用户

步骤二:对用户组进行IAM授权

子账户A分别对用户组group1和group2进行IAM授权,基于云服务管理用户组的相关权限。

  1. 在左侧导航栏中选择“用户组”,找到需要授权的用户组,单击“授权”
  2. 在弹出页面中,在右上角云服务中筛选“云容器引擎(CCE)”

    根据需要选择策略,云容器引擎(CCE)具有3种策略,了解CCE FullAccess和CCE ReadOnlyAccess策略的更多内容,请参考系统策略

    本示例中,group1选择CCE FullAccess和CCE ReadOnlyAccess策略,group2选择CCE ReadOnlyAccess策略。

    图5 IAM授权

  3. 单击“下一步”,您可以根据实际需要选择授权范围方案,使授权范围更细化,本示例选择“所有资源”,单击“确定”

    表3 授权范围方案

    方案

    说明

    所有资源

    授权后,IAM用户可以根据权限使用账号中所有资源,包括企业项目、区域项目和全局服务资源。

    指定企业项目资源

    授权后,IAM用户根据权限使用所选企业项目中的资源。如企业项目A包含资源B,资源B部署在北京四和上海二,IAM用户所在用户组关联企业项目A后,北京四和上海二的资源B用户都可访问,不在企业项目A内的其他资源,该IAM用户将无权访问。

    授权后,用户根据权限使用已选企业项目中的资源。

    指定区域项目资源

    授权后,IAM用户根据权限使用所选区域项目中的资源,未选择的区域项目中的资源,该IAM用户将无权访问。

    授权后,用户根据权限使用已选区域项目中的资源。

步骤三:对用户组进行RBAC授权

子账号A分别对两个用户组进行RBAC授权,实现命名空间级别的权限管理,确保不同角色的用户组拥有合适的最小权限,从而提高系统安全性和管理效率。

  1. 单击左上角,选择“云容器引擎(CCE)”,进入CCE控制台。
  2. 在左侧导航栏中选择“权限管理”。在当前页面下,选择“授权集群”“命名空间”,然后在右上角单击“添加权限”

    图6 权限管理页面

  3. 在添加权限页面,确认集群名称,选择要授权的用户或用户组,选择该集群需要授权使用的命名空间。本示例中,group1选择default命名空间,group2选择test命名空间。

    您可以根据实际情况选择“权限类型”,关于权限类型的具体解释,请参见命名空间权限(kubernetes RBAC授权)。本示例选择“自定义权限”

    1. 单击“新建自定义权限”,进入新建页。
    2. 配置自定义权限参数。表4分别给出group1和group2自定义权限参数。
      图7 新建自定义权限

      表4 参数说明

      参数

      示例

      参数说明

      名称

      group1:

      example1

      group2:

      example2

      自定义权限的名称

      类型

      group1:

      Role

      group2:

      Role

      自定义权限分为ClusterRole或Role两类,ClusterRole或Role均包含一组代表相关权限的规则,详情请参见使用RBAC鉴权

      • ClusterRole:ClusterRole是一个集群级别的资源,可设置集群的访问权限。
      • Role:Role用于在某个命名空间内设置访问权限。当创建Role时,必须指定该Role所属的命名空间。

      本示例仅涉及命名空间的权限配置,故选择Role。

      规则

      group1:

      • get、list、watch:persistentvolumeclaims。
      • *:除persistentvolumeclaims外的其他资源。

      group2:

      • get、list、watch:*。

      左侧表示授予的权限。

      右侧表示授予权限的资源。

      您可以根据实际要求进行配置。

    3. 单击“确定”

  4. “添加权限”页面,“自定义权限”处选择新建的权限,单击“确定”

    本示例需要建立2条权限,即example1和example2,分别配置给group1和group2。

    在权限管理列表中可以看到新建的权限。

    图8 权限管理列表

步骤四:权限验证

利用步骤一:创建用户与用户组新建的用户登录管理控制台,检查用户是否具有对应权限。本节以步骤一中新建的develop用户为例,验证权限是否配置成功。

  1. 利用新建用户登录管理控制台

    根据页面提示绑定手机号,进行登录验证。是否需要绑定手机号,取决于配置用户基本信息时的选择。

    按照页面提示,重置密码(仅首次登录需要)。
    图9 登录管理控制台

  2. 单击左上角,选择“云容器引擎(CCE)”,进入CCE控制台。
  3. 检查develop用户能否访问cce-example之外的其他集群。

    单击其他集群名称,弹出无权限警告,则说明该用户无法访问其他集群。

    图10 无权限警告

  4. 检查develop用户能否访问cce-example集群。

    单击cce-example集群名称,在左侧导航栏中选择“命名空间”,只能看到default命名空间(配置权限的命名空间)。

    图11 命名空间

  5. 检查develop用户能否创建PVC。

    在左侧导航栏中选择“存储”,选择“存储卷”页签,右上角单击“创建存储卷声明PVC”

    在弹出页面中配置相关参数,单击创建,弹出无权限页面。这是因为在步骤三:对用户组进行RBAC授权中,对develop用户只配置PVC查看权限,而未设置操作权限。

    图12 PVC创建无权限

  6. 检查develop用户能否对工作负载进行升级。

    在左侧导航栏中选择“工作负载”,选择已有工作负载wordpress1,单击“升级”

    将该工作负载原镜像版本php7.3修改为latest,单击“升级工作负载”
    图13 修改镜像版本

    工作负载列表中,wordpress1的镜像版本变为latest,则说明升级成功。同时,说明develop用户的操作权限配置成功。
    图14 wordpress1升级后

步骤五:清除资源

当某用户组不再需要相关权限时,您可以利用子账号A删除用户组对应权限,甚至删除建立的用户和用户组。

  1. 删除RBAC授权。

    利用子账号A登录管理控制台

    单击左上角,选择“云容器引擎(CCE)”,进入CCE控制台。

    在左侧导航栏中选择“权限管理”。在当前页面下,选择“集群”“命名空间”

    在权限管理列表中,找到需要删除的权限,单击“删除”,弹出页面中单击“是”

  2. 删除用户组。

    鼠标放于右上角用户名处,在下拉的菜单中,单击“统一身份认证”

    在左侧导航栏中选择“用户组”。找到对应的用户组名称,单击“删除”

    在弹出页面,输入DELETE,单击“确定”。

  3. 删除用户。

    在左侧导航栏中选择“用户”,找到对应的用户名称,右侧单击“删除”。您也可以通过“编辑”停用该用户,待重新需要再启用。

    在弹出页面,输入DELETE,单击“确定”。

相关文档