
# MRS最小化委托权限整改
#### 问题现象
当前MRS集群（MRS 3.3.1-LTS及之后版本）已支持配置最小化权限的MRS服务委托，而存量的MRS集群（MRS 3.3.0-LTS及之前版本）用户服务委托均为Tenant Administrator授权，权限较大，需要进行最小化委托权限整改。
集群如果不依赖IAM同步则无需整改。
参与该变更的用户，如果完成了完整的集群整改后进行委托权限变更， 功能上不会有任何影响。
**如果集群不整改，可能带来的影响：**
- IAM同步查询和更新接口在委托变更后会存在不可用的风险。
- IAM同步状态查询失败，仅影响华为云控制台上的"组件管理"和"租户管理"，可在Manager页面里进行替代操作。不影响之前已同步用户的作业提交等功能， 也不影响通过MRS组件客户端提交的作业。
**整改期间可能带来的影响：**
- 进程重启会耗时预计1min内。进程重启期间Manager页面可能存在无法访问，重启完成后自动恢复。
- 重启期间确保管控面或者API也不能存在正在运行的作业，而且不能通过管控面或者API提交新作业。
#### 检查集群是否开启IAM同步
1. 登录[MRS管理控制台](https://console.huaweicloud.com/mrs/)。
2. 选择"现有集群"，选中一个运行中的集群并单击集群名称，进入集群信息页面。
3. 在"概览"页签，单击"IAM用户同步"右侧的"同步"。
4. 在"IAM用户同步"页面，选择"已同步"，查看右侧已同步用户列表，是否存在同步用户。 
   - 是，执行[集群解耦te_admin依赖]。
   
   - 否，执行[新增MRS服务委托]。
   
   
   
   
 
 #### 集群解耦te_admin依赖
![](https://support.huaweicloud.com/mrs_faq/public_sys-resources/note_3.0-zh-cn.png)
- 执行前，确保重启期间1分钟内无作业通过MRS管理面的作业API进行提交（即通过mrs.{region_id}.myhuaweicloud.com域名提交的作业）。
- 确认集群当前状态是否是"运行中"，如果非"运行中"的异常状态，则不进行整改。
 
1. 使用root用户登录集群Master1节点，备份"/opt/knox/conf/topologies/sandbox.xml"文件复制到备份目录下。
   
   例如，备份目录为"/home/omm/knox_sandbox.xml_bak"，则执行如下命令：
   **cp /opt/knox/conf/topologies/sandbox.xml /home/omm/knox_sandbox.xml_bak**
   
   
2. 修改集群knox的角色校验配置，避免对te_admin角色的强校验需求。
   
   **su - omm**
   **sed -i '/required_token_roles.\*te_admin/d' "/opt/knox/conf/topologies/sandbox.xml"**
   **diff /home/omm/knox_sandbox.xml_bak /opt/knox/conf/topologies/sandbox.xml;**
   命令进行对比，如果有显示如下，则说明修改成功
   ![](https://support.huaweicloud.com/mrs_faq/zh-cn_image_0000002101220926.png "点击放大")
   
   
3. 重启该节点knox。
   
   **cd /opt/knox/bin;**
   **sh restart-knox.sh;**
   
   
4. 重启后，执行命令**ps -ef \| grep knox** 确认进程是否存在，以及**netstat -nltp\| grep 9022** 确认端口是否启动。
   
   ![](https://support.huaweicloud.com/mrs_faq/zh-cn_image_0000002136740433.png "点击放大")
   
   
5. 登录[MRS管理控制台](https://console.huaweicloud.com/mrs/)。
6. 观察集群页面、作业管理等功能是否受影响。 管理面运维观察是否有"集群异常"、"心跳任务失败"等告警。如果发现异常则按照[回退操作]回退并重启进程。
7. 登录Master2节点，执行**ps -ef \| grep knox** 命令确认knox进程是否存在。
   
   - 是，参考[步骤 1]\~[步骤 3]修改Master2节点。
   
   - 否，参考[步骤 1]\~[步骤 2]要修改配置，无需重启knox进程。
   
   
   
   
 
 #### 新增MRS服务委托
![](https://support.huaweicloud.com/mrs_faq/public_sys-resources/note_3.0-zh-cn.png)
操作的账号，需要至少包含如下的IAM委托增删权限和授权、解除授权权限，或者包含Security Administrator系统角色。
"iam:permissions:grantRoleToAgencyOnProject",
"iam:agencies:createAgency",
"iam:permissions:revokeRoleFromAgencyOnProject",
"iam:agencies:deleteAgency"
1. 登录[MRS管理控制台](https://console.huaweicloud.com/mrs/)。
2. 选择"服务授权 \> 变更权限委托"。
3. 勾选mrs_service_agency、MRS Cluster Deployment Agency Access以及mrs_cluster_agency，单击"授权"。 
   ![](https://support.huaweicloud.com/mrs_faq/zh-cn_image_0000002483968056.png "点击放大")
   
   
4. 登录[IAM管理控制台](https://console.huaweicloud.com/iam)。
5. 查看是否生成mrs_service_agency和mrs_cluster_agency委托，以及正确授权。

6. 观察MRS集群列表页该集群是否显示"集群正常"。进入MRS集群查看作业查询、作业管理界面是否正常。 
   如果发现相关异常，参考[回退操作]进行回退。
   
   
 
#### 取消旧委托授权
使用新委托后，MRS服务会自动切换使用新委托。当所有区域的新委托都生效且验证正常，mrs_admin_agency委托才可以取消授权或者删除，请用户自行选择是否删除旧委托。
1. 登录[MRS管理控制台](https://console.huaweicloud.com/mrs/)。
2. 选择"服务授权 \> 变更权限委托"，将Tenant Administrator勾选取消，单击"授权"，即可取消此局点上对MRS服务的租户管理员权限授权。 
   ![](https://support.huaweicloud.com/mrs_faq/zh-cn_image_0000002516088091.png "点击放大")
   
   
3. 登录[IAM管理控制台](https://console.huaweicloud.com/iam)。
4. 查看mrs_admin_agency委托中是否已取消Tenant Administrator授权。

5. 观察MRS集群状态是否正常、观察集群任务运行状态、新提交任务运行状态是否正常。 
   如果发现相关异常，参考[回退操作]进行回退。
   
   
 
 #### 回退操作
1. 如果修改集群knox配置出问题，则将备份的"/opt/knox/conf/topologies/sandbox.xml"配置文件改回，执行如下命令： 
   **cp** *备份文件路径* **/opt/knox/conf/topologies/**
   **cd /opt/knox/bin**
   **su - omm**
   **sh restart-knox.sh**
   
   
2. 通过授权页面，重新添加mrs_admin_agency委托和Tenant Administrator授权, 将mrs_service_agency委托删除和取消授权。
3. 回退完验证。 
   观察集群状态是否正常、有无异常告警、观察集群任务运行状态、新提交任务运行状态是否正常
   
   
 
