
# 角色与策略授权（旧版IAM）
如果您需要对CCE进行角色与策略授权的权限管理，您可以使用[统一身份认证服务](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)（Identity and Access Management，简称IAM），通过IAM，您可以：
- 根据企业的业务组织，在您的账号中，给企业中不同职能部门的员工创建IAM用户，让员工拥有唯一安全凭证，并使用CCE资源。
- 根据企业用户的职能，设置不同的访问权限，以达到用户之间的权限隔离。
- 将CCE资源委托给更专业、高效的其他账号或者云服务，这些账号或者云服务可以根据权限进行代运维。
如果账号已经能满足您的要求，不需要创建独立的IAM用户，您可以跳过本章节，不影响您使用CCE服务的其它功能。
本章节为您介绍基于角色授权的授权方法，操作流程如[图1]所示。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
集群权限仅针对与集群相关的资源（如集群、节点等）有效，您必须确保同时配置了[命名空间权限](https://support.huaweicloud.com/usermanual-cce/cce_10_0189.html)，才能有操作Kubernetes资源（如工作负载、Service等）的权限。
#### 前提条件
- 给用户组授权之前，请您了解用户组可以添加的CCE系统策略，并结合实际需求进行选择，CCE支持的系统策略及策略间的对比，请参见[CCE系统权限](https://support.huaweicloud.com/productdesc-cce/cce_productdesc_0002.html)。若您需要对除CCE之外的其它服务授权，IAM支持服务的所有策略请参见[系统权限](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)。
- 拥有Security Administrator（IAM除切换角色外所有权限）权限的用户（如账号默认拥有此权限），才能看见CCE控制台权限管理页面当前用户组及用户组所拥有的权限。
 
#### 示例流程
图1给用户授予CCE权限流程   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001592900946.png)
1. [创建用户组并授权](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)
   在IAM控制台创建用户组，并授予CCE只读权限，例如CCE ReadOnlyAccess。
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   CCE服务按区域部署，在IAM控制台授予CCE权限时请选择"区域级项目"。
   
2. [创建用户并加入用户组](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)
   在IAM控制台创建用户，并将其加入[1]中创建的用户组。
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/notice_3.0-zh-cn.png)
   通过IAM用户使用CCE时，该IAM用户需要同时支持"编程访问"和"管理控制台访问"的访问方式。
   
3. [用户登录](https://support.huaweicloud.com/usermanual-iam/iam_01_0552.html)并验证权限
   新创建的用户登录控制台，切换至授权区域，验证权限：
   - 在"服务列表"中选择云容器引擎，进入CCE主界面尝试购买集群，如果无法成功操作（假设当前权限仅包含CCE ReadOnlyAccess），表示"CCE ReadOnlyAccess"已生效。
   
   - 在"服务列表"中选择除云容器引擎外（假设当前策略仅包含CCE ReadOnlyAccess）的任一服务，若提示权限不足，表示"CCE ReadOnlyAccess"已生效。
    
 
#### CCE支持的系统角色
角色是IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度，提供有限的服务相关角色用于授权。角色并不能满足用户对精细化授权的要求，无法完全达到企业对权限最小化的安全管控要求。
IAM中预置的CCE系统角色为**CCE Administrator** ，给用户组授予该系统角色权限时，必须同时勾选该角色依赖的其他策略才会生效，例如Tenant Guest、Server Administrator、ELB Administrator、OBS Administrator、SFS Administrator、SWR Admin、APM FullAccess。了解更多角色依赖关系，请参考：[系统权限](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)。
#### CCE支持的系统策略
IAM中预置的CCE系统策略当前包含**CCE FullAccess** 和**CCE ReadOnlyAccess**两种策略：
- **CCE FullAccess**：系统策略，CCE服务集群相关资源的普通操作权限，不包括集群（启用Kubernetes RBAC鉴权）的命名空间权限，不包括委托授权、生成集群证书等管理员角色的特权操作。
- **CCE ReadOnlyAccess：**系统策略，CCE服务集群相关资源的只读权限，不包括集群（启用Kubernetes RBAC鉴权）的命名空间权限。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
购买包周期集群、节点时，需要为用户添加[自定义策略]，额外配置费用中心服务的支付相关权限，如bss:\*:\*。
表1CCE FullAccess策略主要权限 
| 操作（Action）                  | Action详情                                                                             | 说明                                                                                                                         |
|:---|:---|:---|
| cce:\*:\*                   | cce:cluster:create                                                                   | 创建集群                                                                                                                       |
| cce:\*:\*                   | cce:cluster:delete                                                                   | 删除集群                                                                                                                       |
| cce:\*:\*                   | cce:cluster:update                                                                   | 更新集群，如后续允许集群支持RBAC，调度参数更新等                                                                                                 |
| cce:\*:\*                   | cce:cluster:upgrade                                                                  | 升级集群                                                                                                                       |
| cce:\*:\*                   | cce:cluster:start                                                                    | 唤醒集群                                                                                                                       |
| cce:\*:\*                   | cce:cluster:stop                                                                     | 休眠集群                                                                                                                       |
| cce:\*:\*                   | cce:cluster:list                                                                     | 查询集群列表                                                                                                                     |
| cce:\*:\*                   | cce:cluster:get                                                                      | 查询集群详情                                                                                                                     |
| cce:\*:\*                   | cce:node:create                                                                      | 添加节点                                                                                                                       |
| cce:\*:\*                   | cce:node:delete                                                                      | 删除节点/批量删除节点                                                                                                                |
| cce:\*:\*                   | cce:node:update                                                                      | 更新节点，如更新节点名称                                                                                                               |
| cce:\*:\*                   | cce:node:get                                                                         | 查询节点详情                                                                                                                     |
| cce:\*:\*                   | cce:node:list                                                                        | 查询节点列表                                                                                                                     |
| cce:\*:\*                   | cce:nodepool:create                                                                  | 创建节点池                                                                                                                      |
| cce:\*:\*                   | cce:nodepool:delete                                                                  | 删除节点池                                                                                                                      |
| cce:\*:\*                   | cce:nodepool:update                                                                  | 更新节点池信息                                                                                                                    |
| cce:\*:\*                   | cce:nodepool:get                                                                     | 获取节点池                                                                                                                      |
| cce:\*:\*                   | cce:nodepool:list                                                                    | 列出集群的所有节点池                                                                                                                 |
| cce:\*:\*                   | cce:release:create                                                                   | 创建模板实例                                                                                                                     |
| cce:\*:\*                   | cce:release:delete                                                                   | 删除模板实例                                                                                                                     |
| cce:\*:\*                   | cce:release:update                                                                   | 更新升级模板实例                                                                                                                   |
| cce:\*:\*                   | cce:job:list                                                                         | 查询任务列表（集群层面的job）                                                                                                           |
| cce:\*:\*                   | cce:job:delete                                                                       | 删除任务/批量删除任务（集群层面的job）                                                                                                      |
| cce:\*:\*                   | cce:job:get                                                                          | 查询任务详情（集群层面的job）                                                                                                           |
| cce:\*:\*                   | cce:storage:create                                                                   | 创建存储                                                                                                                       |
| cce:\*:\*                   | cce:storage:delete                                                                   | 删除存储                                                                                                                       |
| cce:\*:\*                   | cce:storage:list                                                                     | 列出所有磁盘                                                                                                                     |
| cce:\*:\*                   | cce:addonInstance:create                                                             | 创建插件实例                                                                                                                     |
| cce:\*:\*                   | cce:addonInstance:delete                                                             | 删除插件实例                                                                                                                     |
| cce:\*:\*                   | cce:addonInstance:update                                                             | 更新升级插件实例                                                                                                                   |
| cce:\*:\*                   | cce:addonInstance:get                                                                | 获取插件实例                                                                                                                     |
| cce:\*:\*                   | cce:addonTemplate:get                                                                | 获取插件模板                                                                                                                     |
| cce:\*:\*                   | cce:addonInstance:list                                                               | 列出所有插件实例                                                                                                                   |
| cce:\*:\*                   | cce:addonTemplate:list                                                               | 列出所有插件模板                                                                                                                   |
| cce:\*:\*                   | cce:chart:list                                                                       | 列出所有模板                                                                                                                     |
| cce:\*:\*                   | cce:chart:delete                                                                     | 删除模板                                                                                                                       |
| cce:\*:\*                   | cce:chart:update                                                                     | 更新模板                                                                                                                       |
| cce:\*:\*                   | cce:chart:upload                                                                     | 上传模板                                                                                                                       |
| cce:\*:\*                   | cce:chart:get                                                                        | 获取模板信息                                                                                                                     |
| cce:\*:\*                   | cce:release:get                                                                      | 获取模板实例信息                                                                                                                   |
| cce:\*:\*                   | cce:release:list                                                                     | 列出所有模板实例                                                                                                                   |
| cce:\*:\*                   | cce:userAuthorization:get                                                            | 获取CCE用户授权                                                                                                                  |
| cce:\*:\*                   | cce:userAuthorization:create                                                         | 创建CCE用户授权                                                                                                                  |
| ecs:\*:\*                   | -                                                                                    | ECS（弹性云服务器）服务的所有权限。                                                                                                        |
| evs:\*:\*                   | 具体action详见：[云硬盘v2接口的授权信息](https://support.huaweicloud.com/api-evs/evs_04_0026.html)。 | EVS（云硬盘）的所有权限。 可以将云硬盘挂载到云服务器，并可以随时扩容云硬盘容量                                        |
| vpc:\*:\*                   | -                                                                                    | VPC（虚拟私有云，包含二代ELB）的所有权限。 创建的集群需要运行在虚拟私有云中，创建命名空间时，需要创建或关联VPC，创建在命名空间的容器都运行在VPC之内。 |
| bms:\*:get\*                | -                                                                                    | BMS（裸金属服务器）所有资源详情的查看权限。                                                                                                    |
| bms:\*:list\*               | -                                                                                    | BMS（裸金属服务器）所有资源列表的查看权限。                                                                                                    |
| ims:\*:get\*                | -                                                                                    | IMS（镜像服务）所有资源详情的查看权限。                                                                                                      |
| ims:\*:list\*               | -                                                                                    | IMS（镜像服务）所有资源列表的查看权限。                                                                                                      |
| elb:\*:get                  | -                                                                                    | ELB（弹性负载均衡）所有资源详情的查看权限。                                                                                                    |
| elb:\*:list                 | -                                                                                    | ELB（弹性负载均衡）所有资源列表的查看权限。                                                                                                    |
| nat:\*:get                  | -                                                                                    | NAT网关服务所有资源详情的查看权限。                                                                                                        |
| nat:\*:list                 | -                                                                                    | NAT网关服务所有资源列表的查看权限。                                                                                                        |
| sfs:\*:get\*                | -                                                                                    | SFS（弹性文件存储）所有资源详情的查看权限。                                                                                                    |
| sfs:shares:ShareAction      | -                                                                                    | SFS（弹性文件存储）资源的扩容共享。                                                                                                        |
| sfsturbo:\*:get\*           | -                                                                                    | SFS Turbo（极速弹性文件存储）服务所有资源详情的查看权限。                                                                                          |
| sfsturbo:shares:ShareAction | -                                                                                    | SFS Turbo（极速弹性文件存储）资源的扩容共享。                                                                                                |
| tms:resourceTags:list       | -                                                                                    | TMS（标签管理服务）资源标签列表查看权限。                                                                                                     |
| kps:domainKeypairs:list     | -                                                                                    | DEW（密码安全中心）账号密钥对的SSH密钥列表查看权限。                                                                                              |
| kps:domainKeypairs:get      | -                                                                                    | DEW（密码安全中心）账号密钥对的SSH密钥详情查看权限。                                                                                              |
| kms:cmk:get                 | -                                                                                    | DEW（密码安全中心）查看密钥信息权限。                                                                                                       |
| kms:cmk:list                | -                                                                                    | DEW（密码安全中心）查看密钥列表权限。                                                                                                       |
| aom:\*:get                  | -                                                                                    | AOM（应用运维管理）资源详情的查看权限。                                                                                                      |
| aom:\*:list                 | -                                                                                    | AOM（应用运维管理）资源列表的查看权限。                                                                                                      |
| aom:autoScalingRule:\*      | -                                                                                    | AOM（应用运维管理）自动扩缩容规则的所有操作权限。                                                                                                 |
| apm:icmgr:\*                | -                                                                                    | APM（应用性能管理服务）操作ICAgent权限。                                                                                                  |
| lts:\*:\*                   | -                                                                                    | LTS（云日志服务）的所有权限。                                                                                                           |
| smn:\*:\*                   | -                                                                                    | SMN（消息通知服务）的所有权限。                                                                                                          |
   
表2CCE ReadOnlyAccess策略主要权限 
| 操作（Action）                  | 操作（Action）                | 说明                                                                                                                     |
|:---|:---|:---|
| cce:\*:get                  | cce:cluster:get           | 查询集群详情                                                                                                                 |
| cce:\*:get                  | cce:node:get              | 查询节点详情                                                                                                                 |
| cce:\*:get                  | cce:job:get               | 查询任务详情（集群层面的job）                                                                                                       |
| cce:\*:get                  | cce:addonInstance:get     | 获取插件实例                                                                                                                 |
| cce:\*:get                  | cce:addonTemplate:get     | 获取插件模板                                                                                                                 |
| cce:\*:get                  | cce:chart:get             | 获取模板信息                                                                                                                 |
| cce:\*:get                  | cce:nodepool:get          | 获取节点池                                                                                                                  |
| cce:\*:get                  | cce:release:get           | 获取模板实例信息                                                                                                               |
| cce:\*:get                  | cce:userAuthorization:get | 获取CCE用户授权                                                                                                              |
| cce:\*:list                 | cce:cluster:list          | 查询集群列表                                                                                                                 |
| cce:\*:list                 | cce:node:list             | 查询节点列表                                                                                                                 |
| cce:\*:list                 | cce:job:list              | 查询任务列表（集群层面的job）                                                                                                       |
| cce:\*:list                 | cce:addonInstance:list    | 列出所有插件实例                                                                                                               |
| cce:\*:list                 | cce:addonTemplate:list    | 列出所有插件模板                                                                                                               |
| cce:\*:list                 | cce:chart:list            | 列出所有模板                                                                                                                 |
| cce:\*:list                 | cce:nodepool:list         | 列出集群的所有节点池                                                                                                             |
| cce:\*:list                 | cce:release:list          | 列出所有模板实例                                                                                                               |
| cce:\*:list                 | cce:storage:list          | 列出所有磁盘                                                                                                                 |
| cce:kubernetes:\*           | -                         | 操作所有Kubernetes资源，具体权限请在[命名空间权限](https://support.huaweicloud.com/usermanual-cce/cce_10_0189.html)中配置。                   |
| ecs:\*:get                  | -                         | ECS（弹性云服务器）所有资源详情的查看权限。 CCE中的一个节点就是具有多个云硬盘的一台弹性云服务器                          |
| ecs:\*:list                 | -                         | ECS（弹性云服务器）所有资源列表的查看权限。                                                                                                |
| bms:\*:get\*                | -                         | BMS（裸金属服务器）所有资源详情的查看权限。                                                                                                |
| bms:\*:list                 | -                         | BMS（裸金属服务器）所有资源列表的查看权限。                                                                                                |
| ims:\*:get\*                | -                         | IMS（镜像服务）所有资源详情的查看权限。                                                                                                  |
| ims:\*:list\*               | -                         | IMS（镜像服务）所有资源列表的查看权限。                                                                                                  |
| evs:\*:get                  | -                         | EVS（云硬盘）所有资源详情的查看权限。可以将云硬盘挂载到云服务器，并可以随时扩容云硬盘容量                                                                         |
| evs:\*:list                 | -                         | EVS（云硬盘）所有资源列表的查看权限。                                                                                                   |
| evs:\*:count                | -                         | -                                                                                                                      |
| vpc:\*:get                  | -                         | VPC（虚拟私有云）所有资源详情的查看权限。 创建的集群需要运行在虚拟私有云中，创建命名空间时，需要创建或关联VPC，创建在命名空间的容器都运行在VPC之内 |
| vpc:\*:list                 | -                         | VPC（虚拟私有云）所有资源列表的查看权限。                                                                                                 |
| elb:\*:get                  | -                         | ELB（弹性负载均衡）所有资源详情的查看权限。                                                                                                |
| elb:\*:list                 | -                         | ELB（弹性负载均衡）所有资源列表的查看权限。                                                                                                |
| nat:\*:get                  | -                         | NAT网关服务所有资源详情的查看权限。                                                                                                    |
| nat:\*:list                 | -                         | NAT网关服务所有资源列表的查看权限。                                                                                                    |
| sfs:\*:get\*                | -                         | SFS（弹性文件存储）所有资源详情的查看权限。                                                                                                |
| sfs:shares:ShareAction      | -                         | SFS（弹性文件存储）资源的扩容共享。                                                                                                    |
| sfsturbo:\*:get\*           | -                         | SFS Turbo（极速弹性文件存储）服务所有资源详情的查看权限。                                                                                      |
| sfsturbo:shares:ShareAction | -                         | SFS Turbo（极速弹性文件存储）资源的扩容共享。                                                                                            |
| tms:resourceTags:list       | -                         | TMS（标签管理服务）资源标签列表查看权限。                                                                                                 |
| kps:domainKeypairs:list     | -                         | DEW（密码安全中心）账号密钥对的SSH密钥列表查看权限。                                                                                          |
| kps:domainKeypairs:get      | -                         | DEW（密码安全中心）账号密钥对的SSH密钥详情查看权限。                                                                                          |
| kms:cmk:get                 | -                         | DEW（密码安全中心）查看密钥信息权限。                                                                                                   |
| kms:cmk:list                | -                         | DEW（密码安全中心）查看密钥列表权限。                                                                                                   |
| aom:\*:get                  | -                         | AOM（应用运维管理）服务所有资源详情的查看权限。                                                                                              |
| aom:\*:list                 | -                         | AOM（应用运维管理）服务所有资源列表的查看权限。                                                                                              |
| aom:autoScalingRule:\*      | -                         | AOM（应用运维管理）服务自动扩缩容规则的所有操作权限。                                                                                           |
| lts:\*:get                  | -                         | LTS（云日志服务）的所有资源详情的查看权限。                                                                                                |
| lts:\*:list                 | -                         | LTS（云日志服务）的所有资源列表的查看权限。                                                                                                |
| smn:\*:get                  | -                         | SMN（消息通知服务）所有资源详情的查看权限。                                                                                                |
| smn:\*:list                 | -                         | SMN（消息通知服务）所有资源列表的查看权限。                                                                                                |
   
 #### 自定义策略样例
如果系统预置的CCE策略，不满足您的授权要求，可以创建自定义策略。自定义策略中可以添加的授权项（Action）请参考[权限策略和授权项](https://support.huaweicloud.com/api-cce/cce_02_0327.html)。
目前支持以下两种方式创建自定义策略：
- 可视化视图创建自定义策略：无需了解策略语法，按可视化视图导航栏选择云服务、操作、资源、条件等策略内容，可自动生成策略。
- JSON视图创建自定义策略：可以在选择策略模板后，根据具体需求编辑策略内容；也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见：[创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。本章为您介绍常用的CCE自定义策略样例。
**CCE自定义策略样例：**
- 示例1：创建集群
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "cce:cluster:create"
              ]
          }
      ]
  }
  ```
  
- 示例2：拒绝用户删除节点 拒绝策略需要同时配合其他策略使用，否则没有实际作用。用户被授予的策略中，一个授权项的作用如果同时存在Allow和Deny，则遵循**Deny优先原则**。
  如果您给用户授予CCEFullAccess的系统策略，但不希望用户拥有CCEFullAccess中定义的删除节点权限（cce:node:delete），您可以创建一条相同Action的自定义策略，并将自定义策略的Effect设置为Deny，然后同时将CCEFullAccess和拒绝策略授予用户，根据Deny优先原则，则用户可以对CCE执行除了删除节点外的所有操作。拒绝策略示例如下：
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Deny",
              "Action": [
                  "cce:node:delete"
              ]
          }
      ]
  }
  ```
  
- 示例3：多个授权项策略 一个自定义策略中可以包含多个授权项，且除了可以包含本服务的授权项外，还可以包含其他服务的授权项，可以包含的其他服务必须跟本服务同属性，即都是项目级服务或都是全局级服务。多个授权语句策略描述如下：
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Action": [
                  "ecs:cloudServers:resize",
                  "ecs:cloudServers:delete",
                  "ecs:cloudServers:delete",
                  "ims:images:list",
                  "ims:serverImages:create"
              ],
              "Effect": "Allow"
          }
      ]
  }
  ```
  
 
#### CCE集群权限与企业项目
CCE支持以集群为粒度，基于企业项目维度进行资源管理以及权限分配。
如下事项需特别注意：
- IAM项目是基于资源的物理隔离进行管理，而企业项目则是提供资源的全局逻辑分组，更符合企业实际场景，并且支持基于企业项目维度的IAM策略管理，因此推荐您使用企业项目。详细信息请参见[如何创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)。
- IAM项目与企业项目共存时，IAM将优先匹配IAM项目策略、未决则匹配企业项目策略。
- CCE集群基于已有基础资源（VPC）创建集群、节点时，请确保IAM用户在已有资源的企业项目下有相关权限，否则可能导致集群或者节点创建失败。
- 当资源不支持企业项目时，为企业项目授予该资源的权限将不会生效。
  
  | 是否支持企业项目   | 资源名称          | 说明     |
  |:---|:---|:---|
  | 支持企业项目的资源  | cluster       | 集群     |
  | 支持企业项目的资源  | node          | 节点     |
  | 支持企业项目的资源  | nodepool      | 节点池    |
  | 支持企业项目的资源  | job           | 任务     |
  | 支持企业项目的资源  | tag           | 集群标签   |
  | 支持企业项目的资源  | addonInstance | 插件实例   |
  | 支持企业项目的资源  | release       | Helm版本 |
  | 支持企业项目的资源  | storage       | 存储资源   |
  | 不支持企业项目的资源 | quota         | 集群配额   |
  | 不支持企业项目的资源 | chart         | 模板     |
  | 不支持企业项目的资源 | addonTemplate | 插件模板   |
     
  
 
#### CCE资源
资源是服务中存在的对象。在CCE中，支持集群（cluster）资源粒度授权，您可以在创建策略时，通过指定资源路径来选择特定资源。
表3CCE的指定资源与对应路径 
| 指定资源    | 资源名称 | 资源路径                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| cluster | 集群   | 【格式】 *CCE:\*:\*:cluster:集群名称* 其中第一个\*是regionid，第二个\*是domainid。 【说明】 对于集群资源，IAM自动生成资源路径前缀*CCE:\*:\*:cluster:* 通过集群名称指定具体的资源路径，支持通配符\*。例如： *CCE:\*:\*:cluster:\**：表示任意名称的集群。 *CCE:\*:\*:cluster:test*：表示名称为test的集群。 |
   
示例：禁止用户删除符合特定命名规则的集群节点，例如名称以test开头的集群中的节点。
```
{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "cce:node:delete"
            ],
            "Resource": [
                "CCE:*:*:cluster:test*"
            ]
        }
    ]
}
```
