數據開發模塊的作業執行中會遇到如下問題:
- 數據開發模塊的作業執行機制是以啟動作業的用戶身份執行該作業。對于按照周期調度方式執行的作業,當啟動該作業的IAM帳號在調度周期內被刪除后,系統無法獲取用戶身份認證信息,導致作業執行失敗。
- 如果作業被低權限的用戶啟動,也會因為權限不足導致作業執行失敗。
若需解決以上兩個問題,則可配置委托。配置委托后,作業執行過程中,以委托的身份與其他服務交互,可以避免上述兩種場景下作業執行失敗。
委托的作用
由于云各服務之間存在業務交互關系,一些云服務需要與其他云服務協同工作,需要您創建云服務委托,將操作權限委托給這些服務,讓這些服務以您的身份使用其他云服務,代替您進行一些資源運維工作。
委托的分類
委托分兩類,工作空間委托和作業委托。
- 工作空間委托:工作空間級別的,全局委托。適用于該空間內的所有作業。
- 作業委托:適用于單個作業級別。
作業委托優先級高于工作空間委托,如果工作空間與作業級別的委托都沒有配置,作業會以啟動者的身份去執行。
約束限制
- 創建或修改委托需要用戶具有Security Administrator權限。
- 配置工作空間級委托,需要用戶具有DAYU Administrator或者Tenant Administrator權限。
- 配置作業級委托,需要用戶具有查看列表委托的權限。
創建委托
- 登錄IAM服務控制臺。
- 選擇“委托 > 創建委托”。
- 設置“委托名稱”。例如:DataArts Studio_agency。
- “委托類型”選擇“云服務”,在“云服務”中選擇數據治理中心DataArts Studio,將操作權限委托給DataArts Studio,讓DataArts Studio以您的身份使用其他云服務,代替您進行一些資源運維工作。
- “持續時間”選擇“永久”。
- 在“權限選擇”區域中,單擊“配置權限”。
- 在彈出頁面中搜索“Tenant Administrator”策略,勾選“Tenant Administrator”策略并單擊“確定”,如下圖所示。
? 因Tenant Administrator策略具有除統一身份認證服務IAM外,其他所有服務的所有執行權限。所以給委托服務DataArts Studio配置Tenant Administrator,可訪問周邊所有服務。
? 若您想達到對權限較小化的安全管控要求,Tenant Administrator可不配置,僅配置OBS OperateAccess權限(因作業執行過程中,需要往obs寫執行日志信息,因此需要添加 OBS OperateAccess權限。)。然后再根據作業中的節點類型,配置不同的委托權限。例如某作業僅包含Import GES節點,可配置GES Administrator權限和OBS OperateAccess權限即可。詳細方案請參考配置權限。


- 單擊“確定”完成委托創建。
配置權限
將帳號的操作權限委托給DataArts Studio服務后,需要配置委托身份的權限,才可與其他服務進行交互。
為實現對權限較小化的安全管控要求,可根據作業中的節點類型,以服務為粒度,參見下表配置相應的服務Admin權限。
也可精確到具體服務的操作、資源以及請求條件等。根據作業中的節點類型,以對應服務API接口為粒度進行權限拆分,滿足企業對權限最小化的安全管控要求。參見下表進行配置。例如包含Import GES節點的作業,您只需要創建自定義策略,并勾選ges:graph:getDetail(查看圖詳情),ges:jobs:getDetail(查詢任務狀態),ges:graph:access(使用圖)這三個授權項即可。
須知
- MRS相關的節點(MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce),以及通過直連方式的(MRS Spark SQL、MRS Hive SQL)節點,由于部分MRS集群不支持委托方式提交作業,所以這類作業不能配置委托。
- 支持委托方式提交作業的MRS集群如下:
- 非安全集群
- 安全集群,集群版本大于2.1.0,并且安裝了MRS 2.1.0.1及以上版本的補丁。
- 配置服務級Admin權限
因作業執行過程中,需要往obs寫執行日志信息,因此粗粒度授權時,所有作業都需要添加 OBS OperateAccess權限。
配置相關節點的admin權限
| 節點名稱 | 系統權限 | 權限描述 |
|---|---|---|
| CDM Job | 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 KMS Administrator |
MRS Administrator:MapReduce服務的所有執行權限。該角色有依賴,需要在同項目中勾選依賴的角色:Tenant Guest、Server Administrator。 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 | 消息通知服務的所有執行權限。 |
- 配置細粒度權限(根據各服務支持的授權項,創建自定義策略。)
創建自定義策略的詳細操作請參見統一身份認證用戶指南中的有關“創建自定義策略”的章節。
說明
作業執行過程中,需要向OBS中寫入執行日志。當采取精細化授權方式時,任何類型的作業均需要添加OBS的如下授權項:
obs:bucket:GetBucketLocation
obs:object:GetObject
obs:bucket:CreateBucket
obs:object:PutObject
obs:bucket:ListAllMyBuckets
obs:bucket:ListBucket
CDM Job節點隸屬于DataArts Studio模塊,DataArts Studio不支持細粒度授權。因此包含這幾類節點的作業,給服務配置權限僅支持DataArts Studio Administarator。
CSS不支持細粒度授權,且需要通過代理執行。因此包含這類節點的作業,需要配置DataArts Studio Administarator和Elasticsearch Administrator權限。
SMN不支持細粒度授權,因此包含這類節點的作業,需要配置SMN Administarator權限。
自定義策略
| 節點名稱 | 授權項 |
|---|---|
| Import GES | ges:graph:access ges:graph:getDetai 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 Administarator(角色) |
| 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 Administarator(角色) |
| 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 |
配置工作空間級委托
注意
工作空間級別的委托影響所有的作業,請慎重配置。特別是部分作業中包含MRS相關的節點。
- 登錄DataArts Studio控制臺。選擇實例,點擊“進入控制臺”,選擇對應工作空間的“數據開發”模塊,進入數據開發頁面。
詳見下圖:選擇數據開發


- 在數據開發主界面的左側導航欄,選擇“配置管理 > 配置”。
- 單擊“委托配置”,在工作空間委托配置頁面配置委托。
- 在委托列表中選擇合適的委托,也可重新創建委托。創建委托和配置權限,請參見上述“創建委托”。
詳見下圖:配置工作空間級委托


- 單擊“確定”,回到工作空間委托配置頁面,再單擊

,創建工作空間級委托成功。
配置作業級委托
說明
支持新建作業時,配置作業級委托。也支持修改已有作業的委托。
新建作業時配置委托
- 登錄DataArts Studio控制臺。選擇實例,點擊“進入控制臺”,選擇對應工作空間的“數據開發”模塊,進入數據開發頁面。
詳見下圖:選擇數據開發


- 在數據開發主界面的左側導航欄,選擇“數據開發 > 作業開發”。
- 在作業目錄處,單擊右鍵,選擇“新建作業”。系統彈出新建作業對話框,若已配置過工作空間級委托,則該作業默認使用工作空間級委托。您也可從委托列表中,選擇其他已創建的委托。
詳見下圖:配置作業委托


修改已有作業的委托
- 在數據開發主界面的左側導航欄,選擇“數據開發 > 作業開發”。
- 在作業目錄處,雙擊選中已有作業。在節點編排頁面右側,選擇“作業基本信息”。系統彈出作業信息基本配置對話框,若已配置過工作空間級委托,則該作業默認使用工作空間級委托。您也可從委托列表中,選擇其他已創建的委托。