# 通过IAM角色或策略授予使用MRS的权限
在企业多用户使用MRS服务的场景中，管理员需要为不同职能的员工分配合适的MRS访问权限，实现权限隔离和精细化管控。华为云通过统一身份认证服务（Identity and Access Management，简称IAM）提供权限管理能力，管理员可以根据企业组织架构创建IAM用户，为其授予不同级别的MRS权限策略，实现按需授权。
如果您需要对您所拥有的MRS进行[角色与策略]的权限管理，您可以使用[统一身份认证服务](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)，通过IAM，您可以：
- 根据企业的业务组织，在您的华为云账号中，给企业中不同职能部门的员工创建IAM用户，让员工拥有唯一安全凭证，并使用MRS资源。
- 根据企业用户的职能，设置不同的访问权限，以达到用户之间的权限隔离。
- 将MRS资源委托给更专业、高效的其他华为云账号或者云服务，这些账号或者云服务可以根据权限进行代运维。
如果华为云账号已经能满足您的要求，不需要创建独立的IAM用户，您可以跳过本章节，不影响您使用MRS服务的其它功能。
本章节为您介绍基于角色与策略的授权方法，操作流程如[图1]所示。
#### 前提条件
给用户组授权之前，请您了解用户组可以添加的MRS权限，并结合实际需求进行选择，MRS支持的系统权限，请参见[MRS角色与策略权限管理]。若您需要对除MRS之外的其它服务授权，IAM支持服务的所有权限请参见[权限策略](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)。
#### 示例流程
图1给用户授予MRS权限流程   
![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001580573990.png "点击放大")
1. [创建用户组并授权](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)
   在IAM控制台创建用户组，并授予MRS只读权限"MRS Minimal ReadOnlyAccess"。
   
2. [创建用户并加入用户组](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)
   在IAM控制台创建用户，并将其加入[1]中创建的用户组。
   
3. [用户登录](https://support.huaweicloud.com/usermanual-iam/iam_01_0552.html)并验证权限
   新创建的用户登录控制台，切换至授权区域，验证权限：
   - 在"服务列表"中选择MRS服务，进入MRS主界面，单击右上角"购买集群"，尝试购买MRS集群，如果无法购买MRS集群（假设当前权限仅包含MRS Minimal ReadOnlyAccess），表示"MRS Minimal ReadOnlyAccess"已生效。
   
   - 在"服务列表"中选择除MRS服务外（假设当前策略仅包含MRS Minimal ReadOnlyAccess）的任一服务，若提示权限不足，表示"MRS ReadOnlyAccess"已生效。
    
 
#### MRS自定义策略样例
如果系统预置的MRS权限，不满足您的授权要求，可以创建自定义策略。自定义策略中可以添加的授权项（Action）请参考[身份策略授权参考](https://support.huaweicloud.com/api-mrs/mrs_02_0222.html)。
目前华为云支持以下两种方式创建自定义策略：
- 可视化视图创建自定义策略：无需了解策略语法，按可视化视图导航栏选择云服务、操作、资源、条件等策略内容，可自动生成策略。
- JSON视图创建自定义策略：可以在选择策略模板后，根据具体需求编辑策略内容；也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见：[创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。下面为您介绍常用的MRS自定义策略样例。
- 示例1：授权用户提交、查看、停止作业权限
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "mrs:job:submit",
                  "mrs:job:get",
                  "mrs:job:stop"
              ]
          }
      ]
  }
  ```
  
- 示例2：拒绝用户删除集群 拒绝策略需要同时配合其他策略使用，否则没有实际作用。用户被授予的策略中，一个授权项的作用如果同时存在Allow和Deny，则遵循**Deny优先原则**。
  如果您给用户授予MRS Minimal FullAccess的系统策略，但不希望用户拥有MRS Minimal FullAccess系统策略中定义的删除集群权限，您可以创建一条拒绝删除集群的自定义策略，然后同时将MRS Minimal FullAccess和拒绝策略授予用户，根据Deny优先原则，则用户可以对MRS执行除了删除集群外的所有操作。拒绝策略示例如下：
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Deny",
              "Action": [
                  "mrs:cluster:delete"
              ]
          }
      ]
  }
  ```
  
- 示例3：多个授权项策略 一个自定义策略中可以包含多个授权项，且除了可以包含本服务的授权项外，还可以包含其他服务的授权项，可以包含的其他服务必须跟本服务同属性，即都是项目级服务或都是全局级服务。多个授权语句策略描述如下：
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "mrs:cluster:list",
                  "mrs:cluster:get",
                  "mrs:host:list"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "ecs:servers:get"
              ]
          }
      ]
  }
  ```
  
 
#### MRS集群资源
资源是服务中存在的对象。在MRS中，资源是指集群资源，您可以在创建自定义策略时，通过指定资源路径来选择特定资源。
表1MRS的指定资源与对应路径 
| 指定资源    | 资源路径                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| cluster | 【格式】 MRS:\*:\*:cluster:*集群ID* 【说明】 授予IAM用户特定资源的相应权限，例如授予IAM用户指定MRS集群的权限，需将cluster设置为通过资源路径指定，然后添加资源路径，通过集群ID指定具体的集群。 集群ID查看步骤： 1. 在MRS管理控制台中选择"现有集群"，单击待操作集群的集群名称，进入集群详情页面。  2. 选择"概览"页签，在基本信息区域获取"集群ID"。   |
   
 #### MRS角色与策略权限管理
如[表2]和[表3]所示，包括了MRS的所有默认系统策略，其中[表3]为系统身份策略的最小化权限，建议优先使用[表3]。
 表2MRS系统策略 
| 策略名称              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 策略类别   |
|:---|:---|:---|
| MRS FullAccess                             | MRS管理员权限，拥有该权限的用户可以拥有MRS所有权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 细粒度策略 |
| MRS CommonOperations                      | MRS服务普通用户权限，拥有该权限的用户可以拥有MRS服务使用权限，无新增、删除资源权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 细粒度策略   |
| MRS ReadOnlyAccess                         | MRS服务只读权限，拥有该权限的用户仅能查看MRS的资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 细粒度策略   |
| MRS Administrator | 操作权限： - 对MRS服务的所有执行权限。  - 拥有该权限的用户必须同时拥有Tenant Guest和Server Administrator权限。 Tenant Guest：全局级角色，在全局项目中勾选。 Server Administrator：项目级角色，在同项目中勾选。    | RBAC策略 |
   
 表3MRS最小化系统策略 
| 策略名称                       | 描述                                                                                                                        | 策略类别   |
|:---|:---|:---|
| MRS Minimal FullAccess       | MapReduce服务管理员权限最小集，包括集群创建、扩容、缩容、升级规格、删除、查询等所有操作权限。建议优先使用此策略，并和MRS Dependency Access策略一起配置，以获取管理员完整权限。                    | 细粒度策略 |
| MRS Minimal CommonOperations | MapReduce服务普通用户权限最小集，包括集群查询、任务、文件、标签、补丁、运维通道、告警配置等集群操作权限，建议优先使用此策略。                                                        | 细粒度策略  |
| MRS Minimal ReadOnlyAccess  | MapReduce服务只读权限最小集，包括集群查询操作，建议优先使用此策略。                                                                                    | 细粒度策略 |
| MRS Dependency Access      | MapReduce服务依赖的敏感权限，包括加密、付款、打通网络边界等权限。 说明： 该策略赋予用户的过高权限，请谨慎配置。 | 细粒度策略 |
   
[表4]列出了MRS常用操作与系统权限策略的对应支持情况，您可以参照该表选择合适的系统权限策略。
 表4常用操作与系统策略的对应关系 
| 操作             | MRS FullAccess/ MRS Minimal FullAccess | MRS CommonOperations/ MRS Minimal CommonOperations | MRS ReadOnlyAccess/ MRS Minimal ReadOnlyAccess | MRS Administrator |
|:---|:---|:---|:---|:---|
| 创建集群          | √                                                                                                 | x                                                                                                             | x                                                                                                       | √                   |
| 调整集群         | √                                                                                                  | x                                                                                                            | x                                                                                                         | √                 |
| 升级节点规格      | √                                                                                                  | x                                                                                                              | x                                                                                                          | √                   |
| 删除集群          | √                                                                                                    | x                                                                                                            | x                                                                                                        | √                    |
| 查询集群详情      | √                                                                                                 | √                                                                                                            | √                                                                                                        | √                  |
| 查询集群列表        | √                                                                                                 | √                                                                                                          | √                                                                                                         | √                   |
| 设置弹性伸缩策略      | √                                                                                                 | x                                                                                                             | x                                                                                                       | √                    |
| 查询主机列表       | √                                                                                                  | √                                                                                                             | √                                                                                                      | √                    |
| 查询操作日志       | √                                                                                                 | √                                                                                                            | √                                                                                                       | √                   |
| 创建并执行作业      | √                                                                                                 | √                                                                                                           | x                                                                                                          | √                   |
| 停止作业          | √                                                                                                   | √                                                                                                           | x                                                                                                         | √                   |
| 删除单个作业      | √                                                                                                  | √                                                                                                            | x                                                                                                        | √                  |
| 批量删除作业          | √                                                                                                 | √                                                                                                          | x                                                                                                          | √                    |
| 查询作业详情        | √                                                                                                   | √                                                                                                           | √                                                                                                        | √                    |
| 查询作业列表        | √                                                                                                   | √                                                                                                           | √                                                                                                          | √                    |
| 新建文件夹         | √                                                                                                 | √                                                                                                            | x                                                                                                       | √                    |
| 删除文件           | √                                                                                                  | √                                                                                                             | x                                                                                                          | √                 |
| 查询文件列表       | √                                                                                                  | √                                                                                                             | √                                                                                                         | √                   |
| 批量操作集群标签     | √                                                                                                  | √                                                                                                           | x                                                                                                         | √                  |
| 创建单个集群标签    | √                                                                                                   | √                                                                                                             | x                                                                                                       | √                 |
| 删除单个集群标签      | √                                                                                                   | √                                                                                                             | x                                                                                                       | √                  |
| 按照标签查询资源列表    | √                                                                                                  | √                                                                                                             | √                                                                                                        | √                  |
| 查询集群标签       | √                                                                                                  | √                                                                                                          | √                                                                                                        | √                   |
| 访问Manager页面 | √                                                                                                    | √                                                                                                           | x                                                                                                        | √                  |
| 查询补丁列表         | √                                                                                                  | √                                                                                                          | √                                                                                                       | √                    |
| 安装补丁          | √                                                                                                  | √                                                                                                            | x                                                                                                        | √                  |
| 卸载补丁        | √                                                                                                  | √                                                                                                              | x                                                                                                      | √                   |
| 运维通道授权       | √                                                                                                     | √                                                                                                             | x                                                                                                        | √                  |
| 运维通道日志共享     | √                                                                                                   | √                                                                                                          | x                                                                                                       | √                |
| 查询告警列表        | √                                                                                                  | √                                                                                                           | √                                                                                                        | √                     |
| 订阅告警消息提醒      | √                                                                                                   | √                                                                                                             | x                                                                                                        | √                 |
| 提交SQL语句     | √                                                                                                   | √                                                                                                             | x                                                                                                       | √                |
| 查询SQL结果      | √                                                                                                  | √                                                                                                            | x                                                                                                        | √               |
| 取消SQL执行任务      | √                                                                                                   | √                                                                                                              | x                                                                                                      | √                |
   
#### 常见问题
- **MRS系统策略和最小化系统策略有什么区别？**
  最小化系统策略是系统策略的精简版本，仅包含必要的权限项，权限范围更小、更精细。建议优先使用最小化系统策略以降低安全风险。
  
- **RBAC策略和细粒度策略有什么区别？**
  RBAC策略基于角色进行授权，细粒度策略基于操作进行授权。细粒度策略更灵活，支持Deny优先原则，可以精确控制到具体的操作。建议优先使用细粒度策略。
  
- **自定义策略中如何指定特定集群资源？**
  在自定义策略中通过资源路径指定特定集群，格式为MRS:\*:\*:cluster:\*集群ID\*。集群ID可在MRS管理控制台集群详情页的"概览"页签中获取。
  
 
#### 相关文档
- 了解IAM服务的更多信息，请参考[统一身份认证服务](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)。
- 了解如何创建自定义策略，请参考[创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
- 了解MRS身份策略授权项，请参考[身份策略授权参考](https://support.huaweicloud.com/api-mrs/mrs_02_0222.html)。
 
