
# 身份策略授权（新版IAM）
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
身份策略授权是IAM新版控制台提供的能力，提供更精细化和更灵活的权限管控。关于新旧版IAM的差异详情，请参见[IAM新旧控制台功能差异说明](https://support.huaweicloud.com/productdesc-iam5/iam_01_1105.html)。如果您继续使用IAM旧版控制台，相关的操作及说明请参考[角色与策略授权（旧版IAM）](https://support.huaweicloud.com/usermanual-cce/cce_10_0732.html)。
如果您需要对CCE进行身份策略的权限管理，您可以使用[统一身份认证服务](https://support.huaweicloud.com/productdesc-iam5/iam_01_1107.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等）的权限。
- 使用IAM身份策略授权时，需要为IAM用户配置Tenant Guest系统角色。
- 使用IAM身份策略授权时，还需要为IAM用户额外配置IAM角色与策略授权中的以下策略，您可以通过添加[自定义策略样例](https://support.huaweicloud.com/usermanual-cce/cce_10_0732.html#cce_10_0732__section1437818291149)为用户授予权限：
  - 告警中心、监控中心：要求IAM角色与策略授权中的集群权限cce:cluster:get和cce:cluster:update。
  
  - 使用密钥对创建节点、节点池：要求IAM角色与策略授权中的密钥读取权限ecs:serverKeypairs:list。
  
  - 使用OBS和通用文件系统（原SFS 3.0 容量型）：要求IAM角色与策略授权中的存储读取权限cce:storage:list。
   
 
#### 前提条件
- 在授权操作前，请您了解可以添加的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控制台权限管理页面当前用户组及用户组所拥有的权限。
- 使用Organization中的[服务控制策略](https://support.huaweicloud.com/usermanual-organizations/org_03_0065.html)进行权限控制时，无法拦截包周期资源的创建，例如配置拦截创建ECS虚拟机的SCP策略，在CCE侧创建包周期节点时依然能成功。
 
#### 配置说明
CCE控制台"权限管理 \> 集群权限"页面中创建用户组和具体权限设置均是跳转到IAM控制台进行具体操作，设置完后在集群权限页面能看到用户组所拥有的权限。本章节描述操作直接以IAM中操作为主，不重复介绍在CCE控制台如何跳转。
#### 示例流程
图1给用户授予CCE权限流程   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002469401562.png "点击放大")
1. 在IAM控制台创建用户或用户组。
   
2. [将系统身份策略附加至用户或用户组](https://support.huaweicloud.com/usermanual-iam5/iam_01_0912.html)
   为用户或用户组授予云容器引擎只读权限的系统身份策略"CCEReadOnlyPolicy"，或将身份策略附加至用户或用户组。
   
3. [用户登录](https://support.huaweicloud.com/usermanual-iam5/iam_01_1146.html)并验证权限
   使用已授权的用户登录控制台，验证权限：
   - 在"服务列表"中选择云容器引擎，进入CCE主界面尝试购买集群，如果无法成功操作（假设当前权限仅包含CCEReadOnlyPolicy），表示"CCEReadOnlyPolicy"已生效。
   
   - 在"服务列表"中选择除云容器引擎外（假设当前策略仅包含CCEReadOnlyPolicy）的任一服务，若提示权限不足，表示"CCEReadOnlyPolicy"已生效。
     
 
#### CCE自定义身份策略样例
如果系统预置的CCE系统身份策略，不满足您的授权要求，可以创建自定义身份策略。
目前华为云支持以下两种方式创建自定义身份策略：
- 可视化视图创建自定义身份策略：无需了解策略语法，按可视化视图导航栏选择云服务、操作、资源、条件等策略内容，可自动生成策略。
- JSON视图创建自定义身份策略：可以在选择策略模板后，根据具体需求编辑策略内容；也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见：[创建自定义身份策略并附加至主体](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)。
您可以在创建自定义身份策略时，可以通过资源类型（Resource）元素来选择特定资源，以及条件键（Condition）元素来控制策略何时生效。下面为您介绍常用的CCE自定义身份策略样例。
- 示例1：授权创建和删除集群的权限。
  ```
  {
      "Version": "5.0",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "cce:cluster:createCluster",
                  "cce:cluster:delete"
              ]
          }
      ]
  }
  ```
  
- 示例2：多个授权项策略 一个自定义身份策略中可以包含多个授权项，且除了可以包含本服务的授权项外，还可以包含其他服务的授权项。多个授权语句策略描述如下：
  ```
  {
      "Version": "5.0",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "cce:cluster:createCluster",
                  "cce:cluster:delete"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "evs:volumes:create",
                  "evs:volumes:list"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "ecs:cloudServers:createServers",
                  "ecs:cloudServers:listServersDetails"
              ]
          }
      ]
  }
  ```
  
 
#### CCE资源
资源是服务中存在的对象。在CCE中，支持集群（cluster）资源粒度授权，您可以在创建策略时，通过指定资源路径来选择特定资源。
表1CCE的指定资源与对应路径 
| 指定资源    | 资源名称 | 资源路径                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| cluster | 集群   | 【格式】 *CCE:\*:\*:cluster:集群名称* 其中第一个\*是regionid，第二个\*是domainid。 【说明】 对于集群资源，IAM自动生成资源路径前缀*CCE:\*:\*:cluster:* 通过集群名称指定具体的资源路径，支持通配符\*。例如： *CCE:\*:\*:cluster:\**：表示任意名称的集群。 *CCE:\*:\*:cluster:test*：表示名称为test的集群。 |
   
示例：禁止用户删除符合特定命名规则的集群节点，例如名称以test开头的集群中的节点。
```
{
    "Version": "5.0",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "cce:node:delete"
            ],
            "Resource": [
                "CCE:*:*:cluster:test*"
            ]
        }
    ]
}
```
