配置调度身份
数据开发模块的作业执行中会遇到如下问题:
- 数据开发模块的作业执行机制是以启动作业的用户身份执行该作业。对于按照周期调度方式执行的作业,当启动该作业的IAM账号在调度周期内被停用或删除后,系统无法获取用户身份认证信息,导致作业执行失败。
- 如果作业被低权限的用户启动,也会因为权限不足导致作业执行失败。
若需解决以上两个问题,则可配置作业调度身份。配置作业调度身份后,作业执行过程中,以配置的调度身份与其他服务交互,可以避免上述两种场景下作业执行失败。
在作业进行周期调度时,该作业的默认用户被删除后,如果使用其他用户对该作业进行版本提交并执行调度,那该作业的执行用户就默认为提交版本的用户。
调度身份的分类
调度身份分为委托和IAM账户两大类。
- 委托:由于云各服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给这些服务,让这些服务以您的身份使用其他云服务,代替您进行一些资源运维工作。
- IAM账号:通过用户组统一配置,权限管理相对于委托来说,流程简便;并且使用IAM账号的兼容性更好,可支持MRS相关的节点(MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce),通过直连方式的(MRS Spark SQL、MRS Hive SQL)节点,以及目标端为DWS的ETL Job节点,解决部分MRS集群和部分ETL Job节点不支持委托方式提交作业的问题。
调度身份的优先级
系统按照作业委托>公共委托>执行用户>公共IAM账号的优先级顺序来获取权限,然后以该权限来执行作业。
作业执行机制默认以启动作业的用户身份执行该作业。如果作业被低权限的用户启动,也会因为权限不足导致作业执行失败,您可通过配置调度身份来解决该问题。
约束限制
- 创建或修改委托需要用户具有Security Administrator权限。
- 配置工作空间级的调度身份,需要用户具有DAYU Administrator或者Tenant Administrator权限。
- 配置作业级委托,需要用户具有查看列表委托的权限。
配置公共委托
公共委托是工作空间级别的,会委托影响该空间下所有的作业,请慎重配置。 特别是部分作业中包含 MRS相关的节点。
- 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在数据开发主界面的左侧导航栏,选择 。
- 单击“调度身份配置”,公共调度身份选择“公共委托”。
- 单击右边的“+”在委托列表中选择合适的委托,也可重新创建委托。创建委托和配置权限,请参见参考:创建委托和参考:配置委托权限。
图1 配置工作空间级委托
- 单击“确定”,回到调度身份配置页面,再单击,完成公共委托配置。
公共委托配置后的生效条件:批处理作业下一周期生效,实时作业需要手动重启一下生效。
配置作业委托
支持新建作业时,配置作业级委托。也支持修改已有作业的委托。
新建作业时配置委托
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在数据开发主界面的左侧导航栏,选择 。
- 在作业目录处,单击右键,选择“新建作业”。系统弹出新建作业对话框,若已配置过工作空间级委托,则该作业默认使用工作空间级委托。您也可从委托列表中,选择其他已创建的委托。创建委托和配置权限,请参见参考:创建委托和参考:配置委托权限。
图2 配置作业委托
修改已有作业的委托
- 在数据开发主界面的左侧导航栏,选择 。
- 在作业目录处,双击选中已有作业。在节点编排页面右侧,选择“作业基本信息”。系统弹出作业信息基本配置对话框,若已配置过工作空间级委托,则该作业默认使用工作空间级委托。您也可从委托列表中,选择其他已创建的委托。
配置公共IAM账号
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在数据开发主界面的左侧导航栏,选择 。
- 单击“调度身份配置”,公共调度身份选择“公共IAM账号”。
- 在右边的文本框中输入已创建好的公共IAM账号。
- 单击,完成公共IAM账号的设置。
参考:创建委托
- 登录IAM服务控制台。
- 选择“委托”,单击“创建委托”。
- 设置“委托名称”。例如:DGC_agency。
- 在创建委托页面,委托类型选择“云服务”,云服务选择“数据湖治理中心DGC”,将操作权限委托给DataArts Studio,让DataArts Studio以您的身份使用其他云服务,代替您进行一些资源运维工作。
图3 创建委托
- 单击“下一步”,进入授权页面。
- 在授权页面中搜索“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 配置权限
- 单击“确定”完成委托创建。
参考:配置委托权限
将账号的操作权限委托给DataArts Studio服务后,需要配置委托身份的权限,才可与其他服务进行交互。
为实现对权限较小化的安全管控要求,可根据作业中的节点类型,以服务为粒度,参见表1配置相应的服务Admin权限。
也可精确到具体服务的操作、资源以及请求条件等。根据作业中的节点类型,以对应服务API接口为粒度进行权限拆分,满足企业对权限最小化的安全管控要求。参见表2进行配置。例如包含Import GES节点的作业,您只需要创建自定义策略,并勾选ges:graph:getDetail(查看图详情),ges:jobs:getDetail(查询任务状态),ges:graph:access(使用图)这三个授权项即可。
节点名称 |
系统权限 |
权限描述 |
---|---|---|
CDM Job、DIS Stream、DIS Dump、DIS Client |
DAYU Administrator |
数据治理中心服务的所有执行权限。 |
Import GES |
GES Administrator |
图引擎服务的所有执行权限。该角色有依赖,需要在同项目中勾选依赖的角色:Tenant Guest、Server Administrator。 |
|
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 |
Administrator:数据治理中心服务的所有执行权限。 KMS Administrator:数据加密服务加密密钥的管理员权限。 |
DLI Flink Job、DLI SQL、DLI Spark |
DLI Service Admin |
数据湖探索的所有执行权限。 |
DWS SQL、Shell、RDS SQL(通过代理方式连接数据源) |
DAYU Administrator KMS Administrator |
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 |
消息通知服务的所有执行权限。 |
- 配置细粒度权限(根据各服务支持的授权项,创建自定义策略)
创建自定义策略的详细操作请参见创建自定义策略。
- 作业执行过程中,需要向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 Administarator。
- CSS不支持细粒度授权,且需要通过代理执行。因此包含这类节点的作业,需要配置DataArts Studio Administarator和Elasticsearch Administrator权限。
- SMN不支持细粒度授权,因此包含这类节点的作业,需要配置SMN Administarator权限。
节点名称 |
授权项 |
---|---|
Import GES |
|
|
|
MRS Spark SQL、MRS Hive SQL、MRS Kafka、Kafka Client(通过代理方式连接集群) |
|
DLI Flink Job、DLI SQL、DLI Spark |
|
DWS SQL、Shell、RDS SQL(通过代理方式连接数据源) |
|
Create OBS、Delete OBS、OBS Manager |
|