
# 配置调度身份
数据开发模块的作业执行中会遇到如下问题：
- 数据开发模块的作业执行机制是以启动作业的用户身份执行该作业。对于按照周期调度方式执行的作业，当启动该作业的IAM账号在调度周期内被停用或删除后，系统无法获取用户身份认证信息，导致作业执行失败。
- 如果作业被低权限的用户启动，也会因为权限不足导致作业执行失败。
若需解决以上两个问题，则可配置作业调度身份。配置作业调度身份后，作业执行过程中，以配置的调度身份与其他服务交互，可以避免上述两种场景下作业执行失败。
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
在作业进行周期调度时，该作业的默认用户被删除后，如果使用其他用户对该作业进行版本提交并执行调度，那该作业的执行用户就默认为提交版本的用户。
#### 调度身份的分类
调度身份分为委托和IAM账户两大类。
- 委托：由于云各服务之间存在业务交互关系，一些云服务需要与其他云服务协同工作，需要您创建云服务委托，将操作权限委托给这些服务，让这些服务以您的身份使用其他云服务，代替您进行一些资源运维工作。
  委托可以分为：
  - 公共委托：工作空间级别的全局委托。适用于该空间内的所有作业。配置公共委托请参考[配置公共委托]。
  
  - 作业委托：适用于单个作业级别。配置作业委托请参考[配置作业委托]。
    
- IAM账号：通过用户组统一配置，权限管理相对于委托来说，流程简便；并且使用IAM账号的兼容性更好，可支持MRS相关的节点（MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce），通过API连接方式的（MRS Spark SQL、MRS Hive SQL）节点，以及目标端为DWS的ETL Job节点，解决部分MRS集群和部分ETL Job节点不支持委托方式提交作业的问题。
  IAM账户可分为：
  - 公共IAM账户：工作空间级别的全局IAM账户。适用于该空间内的所有作业。配置公共IAM账户请参考[配置公共IAM账号]。
  
  - 执行用户：作业级别的IAM账户，适用于单个作业级别。配置执行用户请参考[配置执行用户]。
    
 
#### 调度身份的优先级
系统按照作业委托\>公共委托\>执行用户\>公共IAM账号\>调度作业的用户的优先级顺序来获取权限，然后以该权限来执行作业。
作业执行机制默认以启动作业的用户身份执行该作业。如果作业被低权限的用户启动，也会因为权限不足导致作业执行失败，您可通过配置调度身份来解决该问题。
#### 约束限制
- 创建或修改委托需要用户具有Security Administrator权限。
- 配置工作空间级的调度身份，需要用户具有DAYU Administrator或者Tenant Administrator权限。
- 配置作业级委托，需要用户具有查看列表委托的权限。
 
 #### 配置公共委托
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/caution_3.0-zh-cn.png)
公共委托是工作空间级别的，会影响该空间下所有的作业，请慎重配置。 特别是部分作业中包含 MRS相关的节点。
1. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
2. 在DataArts Studio控制台首页，选择对应工作空间的"数据开发"模块，进入数据开发页面。
3. 在数据开发主界面的左侧导航栏，选择"配置管理 \> 配置"。
4. 单击"调度身份配置"，公共调度身份选择"公共委托"。
5. 单击右边的"+"在委托列表中选择合适的委托，也可重新创建委托。创建委托和配置权限，请参见[参考：创建委托]和[参考：配置委托权限]。
   图1配置工作空间级委托   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001420272310.png "点击放大") 
6. 单击"确定"，回到调度身份配置页面，再单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001076537385.png)，完成公共委托配置。
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   公共委托配置后的生效条件：批处理作业下一周期生效，实时作业需要手动重启一下生效。
   
 
 #### 配置作业委托
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
支持新建作业时，配置作业级委托。也支持修改已有作业的委托。
**新建作业时配置委托**
1. 在DataArts Studio控制台首页，选择对应工作空间的"数据开发"模块，进入数据开发页面。
2. 在数据开发主界面的左侧导航栏，选择"数据开发 \> 作业开发"。
3. 在作业目录处，单击右键，选择"新建作业"。系统弹出新建作业对话框，若已配置过工作空间级委托，则该作业默认使用工作空间级委托。您也可从委托列表中，选择其他已创建的委托。创建委托和配置权限，请参见[参考：创建委托]和[参考：配置委托权限]。
   图2配置作业委托   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002288076173.png "点击放大")
   **修改已有作业的委托**
   

1. 在数据开发主界面的左侧导航栏，选择"数据开发 \> 作业开发"。
2. 在作业目录处，双击选中已有作业。在节点编排页面右侧，选择"作业基本信息"。系统弹出作业信息基本配置对话框，若已配置过工作空间级委托，则该作业默认使用工作空间级委托。您也可从委托列表中，选择其他已创建的委托。
 
 #### 配置公共IAM账号
1. 在DataArts Studio控制台首页，选择对应工作空间的"数据开发"模块，进入数据开发页面。
2. 在数据开发主界面的左侧导航栏，选择"配置管理 \> 配置"。
3. 单击"调度身份配置"，公共调度身份选择"公共IAM账号"。
4. 在右边的文本框中输入已创建好的公共IAM账号。
5. 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001421999868.png)，完成公共IAM账号的设置。
 
 #### 配置执行用户
**配置作业的执行用户**
1. 在作业目录处，双击选中已有作业。
2. 单击画布右侧"作业基本信息"页签，展开配置页面，可设置作业的执行用户。
 
 #### 参考：创建委托
1. 登录IAM服务控制台。
2. 选择"委托"，单击"创建委托"。
3. 设置"委托名称"。例如：DGC_agency。
4. 在创建委托页面，委托类型选择"云服务"，云服务选择"数据湖治理中心DGC"，将操作权限委托给DataArts Studio，让DataArts Studio以您的身份使用其他云服务，代替您进行一些资源运维工作。
   图3创建委托   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002298453893.png "点击放大")
   
   
5. 单击"完成"，创建完成。界面提示"是否立即为当前创建的委托进行授权？"，单击"立即授权"，进入授权页面。
6. 在授权页面中搜索"Tenant Administrator"策略，勾选"Tenant Administrator"策略并单击"下一步"。
   - 因Tenant Administrator策略具有除统一身份认证服务IAM外，其他所有服务的所有执行权限。所以给委托服务DataArts Studio配置Tenant Administrator，可访问周边所有服务。
   
   - 若您想达到对权限较小化的安全管控要求，Tenant Administrator可不配置，仅配置OBS OperateAccess权限（因作业执行过程中，需要往OBS写执行日志信息，因此需要添加 OBS OperateAccess权限）。然后再根据作业中的节点类型，配置不同的委托权限。例如某作业仅包含Import GES节点，可配置GES Administrator权限和OBS OperateAccess权限即可。详细方案请参考[参考：配置委托权限]。
     图4配置权限   
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001498567460.png "点击放大")
     
     
     
    
7. 单击"确定"完成委托创建。
 
 #### 参考：配置委托权限
将账号的操作权限委托给DataArts Studio服务后，需要配置委托身份的权限，才可与其他服务进行交互。
为实现对权限较小化的安全管控要求，可根据作业中的节点类型，以服务为粒度，参见[表1]配置相应的服务Admin权限。
也可精确到具体服务的操作、资源以及请求条件等。根据作业中的节点类型，以对应服务API接口为粒度进行权限拆分，满足企业对权限最小化的安全管控要求。参见[表2]进行配置。例如包含Import GES节点的作业，您只需要创建自定义策略，并勾选ges:graph:getDetail（查看图详情），ges:jobs:getDetail（查询任务状态），ges:graph:access（使用图）这三个授权项即可。
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/notice_3.0-zh-cn.png)
- 当满足如下条件之一时，MRS集群才支持委托方式提交作业。
  - 非安全集群。
  
  - 安全集群，集群版本大于 2.1.0，并且安装了MRS 2.1.0.1及以上版本的补丁。
   
- 当MRS集群不支持委托方式提交作业时，如下节点相关作业不能配置委托。 MRS相关的节点（MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce），以及通过API方式连接的（MRS Spark SQL、MRS Hive SQL）节点。
  
 
- 配置服务级Admin权限 因作业执行过程中，需要往OBS写执行日志信息，因此粗粒度授权时，所有作业都需要添加OBS OperateAccess权限。
  
 表1配置相关节点的admin权限 
| 节点名称                                                                                                                                                                                                                                                                                                                                          | 系统权限                                                                                                                                 | 权限描述                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| CDM Job、DIS Stream、DIS Dump、DIS Client                                                                                                                                                                                                                                                                                                        | DAYU Administrator                                                                                                                   | 数据治理中心服务的所有执行权限。                                                                                                                                                                                                                                                               |
| Import GES                                                                                                                                                                                                                                                                                                                                    | GES Administrator                                                                                                                    | 图引擎服务的所有执行权限。该角色有依赖，需要在同项目中勾选依赖的角色：Tenant Guest、Server Administrator。                                                                                                                                                                                                          |
| - MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce  - MRS Spark SQL、MRS Hive SQL（通过MRS API方式连接MRS集群的）   | MRS Administrator MRS Fullaccess KMS Administrator | MRS Administrator：RBAC策略下MapReduce服务的所有执行权限。该角色有依赖，需要在同项目中勾选依赖的角色：Tenant Guest、Server Administrator。 MRS Fullaccess：细粒度策略下MRS管理员权限，拥有该权限的用户可以拥有MRS所有权限。 KMS Administrator：密码安全中心加密密钥的管理员权限。 |
| MRS Spark SQL、MRS Hive SQL、MRS Kafka、Kafka Client（通过代理方式连接集群）                                                                                                                                                                                                                                                                                 | DAYU Administrator KMS Administrator                                                         | DAYU Administrator：数据治理中心服务的所有执行权限。 KMS Administrator：密码安全中心加密密钥的管理员权限。                                                                                                                                                               |
| DLI Flink Job、DLI SQL、DLI Spark                                                                                                                                                                                                                                                                                                               | DLI Service Admin                                                                                                                    | 数据湖探索的所有执行权限。                                                                                                                                                                                                                                                                  |
| DWS SQL、Shell、RDS SQL（通过代理方式连接数据源）                                                                                                                                                                                                                                                                                                            | DAYU Administrator KMS Administrator                                                         | DAYU Administrator：数据治理中心服务的所有执行权限。 KMS Administrator：密码安全中心加密密钥的管理员权限。                                                                                                                                                                |
| CSS                                                                                                                                                                                                                                                                                                                                           | DAYU Administrator Elasticsearch Administrator                                              | DAYU Administrator：数据治理中心服务的所有执行权限。 Elasticsearch Administrator：云搜索服务的所有执行权限。该角色有依赖，需要在同项目中勾选依赖的角色：Tenant Guest、Server Administrator。                                                                                                 |
| Create OBS、Delete OBS、OBS Manager                                                                                                                                                                                                                                                                                                             | OBS OperateAccess                                                                                                                    | 查看桶、上传对象、获取对象、删除对象、获取对象ACL等对象基本操作权限                                                                                                                                                                                                                                            |
| SMN                                                                                                                                                                                                                                                                                                                                           | SMN Administrator                                                                                                                    | 消息通知服务的所有执行权限。                                                                                                                                                                                                                                                                 |
   
- 配置细粒度权限（根据各服务支持的授权项，创建自定义策略） 创建自定义策略的详细操作请参见[创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
  
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
- 作业执行过程中，需要向OBS中写入执行日志。当采取精细化授权方式时，任何类型的作业均需要添加OBS的如下授权项：
  - obs:bucket:GetBucketLocation
  
  - obs:object:GetObject
  
  - obs:bucket:CreateBucket
  
  - obs:object:PutObject
  
  - obs:bucket:ListAllMyBuckets
  
  - obs:bucket:ListBucket
   
- CDM Job、DIS Stream、DIS Dump、DIS Client节点隶属于DataArts Studio模块，DataArts Studio不支持细粒度授权。因此包含这几类节点的作业，给服务配置权限仅支持DataArts Studio Administrator。
- CSS不支持细粒度授权，且需要通过代理执行。因此包含这类节点的作业，需要配置DataArts Studio Administrator和Elasticsearch Administrator权限。
- SMN不支持细粒度授权，因此包含这类节点的作业，需要配置SMN Administrator权限。
 
 表2自定义策略 
| 节点名称                                                                                                                                                                                                                                                                                                                                             | 授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| Import GES                                                                                                                                                                                                                                                                                                                                       | - ges:graph:access  - ges:graph:getDetail  - ges:jobs:getDetail                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| - MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce  - MRS Spark SQL、MRS Hive SQL（通过MRS API方式连接MRS集群的）   | - mrs:job:delete  - mrs:job:stop  - mrs:job:submit  - mrs:cluster:get  - mrs:cluster:list  - mrs:job:get  - mrs:job:list  - kms:dek:crypto  - kms:cmk:get                                                                                                                  |
| MRS Spark SQL、MRS Hive SQL、MRS Kafka、Kafka Client（通过代理方式连接集群）                                                                                                                                                                                                                                                                                    | - kms:dek:crypto  - kms:cmk:get  - DataArts Studio Administrator角色)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| DLI Flink Job、DLI SQL、DLI Spark                                                                                                                                                                                                                                                                                                                  | - dli:jobs:get  - dli:jobs:update  - dli:jobs:create  - dli:queue:submit_job  - dli:jobs:list  - dli:jobs:list_all                                                                                                                                                                                                                                                                                                                                                                                           |
| DWS SQL、Shell、RDS SQL（通过代理方式连接数据源）                                                                                                                                                                                                                                                                                                               | - kms:dek:crypto  - kms:cmk:get  - DataArts Studio Administrator(角色)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Create OBS、Delete OBS、OBS Manager                                                                                                                                                                                                                                                                                                                | - obs:bucket:GetBucketLocation  - obs:bucket:ListBucketVersions  - obs:object:GetObject  - obs:bucket:CreateBucket  - obs:bucket:DeleteBucket  - obs:object:DeleteObject  - obs:object:PutObject  - obs:bucket:ListAllMyBuckets  - obs:bucket:ListBucket   |
   
