
# UCS权限概述
UCS权限管理是在统一身份认证服务（IAM）与Kubernetes的角色访问控制（RBAC）的能力基础上，打造的细粒度权限管理功能，支持基于IAM的细粒度权限控制和IAM Token认证，支持集群级别、容器舰队级别、集群命名空间级别、容器舰队命名空间级别的权限控制，帮助用户便捷灵活的对租户下的IAM用户、用户组设定不同的操作权限。
如果您需要对UCS相关资源进行精细的权限管理，例如限制不同部门的员工拥有部门内资源的细粒度权限，您可以使用UCS权限管理提供的增强能力进行多维度的权限管理。
本章节将介绍UCS权限管理机制及其涉及到的基本概念。如果当前账号已经能满足您的要求，您可以跳过本章节，不影响您使用UCS服务的其它功能。
![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/note_3.0-zh-cn.png)
- 权限管理能力对单集群和已经开通集群联邦能力的容器舰队生效，若需使用权限管理能力，请先为容器舰队[开通集群联邦](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0018.html)。
- UCS仅支持IAM授权，不支持企业项目授权。
 
图1权限设计   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002202216004.png "点击放大")
#### UCS支持的权限管理能力
UCS的权限管理类型分为"UCS服务资源权限"和"集群中Kubernetes资源权限"两种，细分如下：
- **UCS服务资源权限：**是基于IAM系统策略的授权。包括"集群权限管理"和"容器舰队权限管理"；
- **集群中Kubernetes资源权限：**是基于Kubernetes RBAC能力的授权。包括"集群命名空间权限"和"容器舰队命名空间权限"。
这四种权限管理能力，支持从"集群"、"容器舰队"、"集群命名空间"和"容器舰队命名空间"四种权限层面对用户组或用户进行细粒度授权。具体解释如下：
- **集群权限**：是基于IAM系统策略的授权，通过集群权限设置可以让某些用户组操作集群（如注册集群、注销集群、集群插件管理） ，并且让某些用户组仅能查看集群。

- **容器舰队权限** ：是基于IAM系统策略的授权，通过容器舰队权限设置可以让某些用户组操作容器舰队（如创建/删除容器舰队、容器舰队添加集群、容器舰队删除集群） ，并且让某些用户组仅能查看容器舰队。
  UCS服务资源权限（集群权限、容器舰队权限）是基于IAM系统策略（ABAC）的授权，涉及UCS非Fleet API、KubernetesAPI，支持IAM细粒度策略、企业项目管理相关能力。容器舰队权限仅针对容器舰队相关的资源（如容器舰队、启用联邦）有效 ，集群权限仅针对集群相关的资源（如集群、节点）有效，必须确保同时设置了命名空间权限，才能有操作Fleet、Kubernetes资源（如工作负载、Service、路由等）的权限。 容器舰队权限与集群权限设置互相独立，互不干涉。
  

- **集群命名空间权限**：是基于Kubernetes RBAC（Role-Based Access Control，基于角色的访问控制）能力的授权，通过权限设置可以让不同用户或用户组拥有不同Kubernetes资源的权限（如工作负载、任务、服务等Kubernetes原生资源）。

- **容器舰队命名空间权限** ：是基于Fleet RBAC（Role-Based Access Control，基于角色的访问控制）能力的授权，通过权限设置可以让不同的用户或者用户组拥有不同Fleet资源的权限（如工作负载、服务、MCI、分发策略等Fleet原生资源）。
  集群中Kubernetes资源权限（集群命名空间权限、容器舰队命名空间权限）涉及UCS Kubernetes API，基于Kubernetes RBAC能力进行增强，支持对接IAM用户、用户组进行授权和认证鉴权，但与IAM细粒度策略独立。
  UCS的权限可以从使用的阶段分为两个阶段来看：第一个阶段是创建和管理集群/容器舰队的权限，也就是拥有创建与删除集群、容器舰队、节点等资源的权限。第二个阶段是使用集群Kubernetes、容器舰队Fleet资源（如工作负载、Service等）的权限。
  图2权限示例图   
  ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002269702534.png) 
 
 #### UCS服务资源权限（IAM授权）与集群中Kubernetes资源权限（Kubernetes RBAC授权）的关系
拥有不同服务资源权限（IAM授权）的用户，其拥有的集群中Kubernetes资源权限权限（Kubernetes RBAC授权）不同。[表1]给出了不同用户拥有的集群中Kubernetes资源权限详情。
 表1不同用户拥有的集群中Kubernetes资源权限 
| 用户类型                                              | UCS云服务资源权限                                       | 集群中Kubernetes资源权限详情                                                                                                            |
|:---|:---|:---|
| 拥有Tenant Administrator权限的用户、拥有UCS FullAccess权限的用户 | 集群管理、容器舰队管理、插件管理、策略中心、流量分发、容器智能分析、服务网格这些功能的操作权限。 | 全部命名空间权限 说明： UCS FullAccess不直接具有CCE集群的RBAC权限，需要用户到权限管理页面进行CCE集群授权。 |
| 拥有UCS CommonOperations权限的用户                       | 集群只读、容器舰队只读、流量分发能力、插件管理只读、策略中心只读。                | 按RBAC授权                                                                                                                        |
| 拥有UCS ReadOnlyAccess权限的IAM用户                      | UCS云服务资源的只读权限                                    | 按RBAC授权                                                                                                                        |
| 拥有UCS CIAOperations权限的IAM用户                       | UCS中容器智能分析实例的操作权限                                | 按RBAC授权                                                                                                                        |
| 拥有Tenant Guest权限的IAM用户                            | UCS云服务资源的只读权限                                    | 按RBAC授权                                                                                                                        |
   
#### 权限管理流程
新建IAM用户的权限管理主要流程可参见权限管理流程。
图3权限管理流程   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002237255937.png "点击放大")
#### 基本概念说明
UCS权限管理包含如下基本概念，其关系如[图4]所示。
- **用户：**由管理员账号在统一身份认证服务（IAM）中创建的用户，是云服务的使用人员，具有独立的身份凭证（密码和访问密钥），根据账号授予的权限使用资源。
- **用户组：**用户组是用户的集合，IAM可以通过用户组功能实现用户的授权。您创建的IAM用户，加入特定用户组后，将具备对应用户组的权限。例如，管理员为用户组授予UCS FullAccess权限后，其中的用户将具备UCS服务的管理员权限。当某个用户加入多个用户组时，此用户同时拥有多个用户组的权限，即多个用户组权限的全集。
- **命名空间：**命名空间（Namespace）是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间，不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务，也能够互不干扰。例如可以将开发环境、测试环境的业务分别放在不同的命名空间。
- **权限类型：** 由UCS管理员定义的某个或某些用户对集群中Kubernetes资源的操作范围，UCS预置了几个常用权限，包括管理员权限、运维权限、开发权限、只读权限，同时也支持用户自定义权限。更多介绍请参见[添加资源权限（控制台）](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0011.html#ucs_01_0011__section1179982514429)。
- **容器舰队：**容器舰队是多个集群的集合，管理员可以使用容器舰队来实现关联集群的分类。容器舰队还可以实现多集群的统一管理，包括权限管理、安全策略以及多集群编排等统一管理的能力。
图4权限关系示意图   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002225124869.png "点击放大")
