本文詳細介紹了如何配置RAM子帳號許可權來使用DLA Serverless Spark提交作業。
前提條件
- 已建立RAM子帳號,如何建立,請參見建立RAM使用者。
- 已建立DLA子帳號,如何建立,請參見管理DLA帳號。
- DLA子帳號已綁定RAM子帳號,如何綁定,請參見DLA子帳號綁定RAM帳號。
操作步驟
- 登入RAM控制台為RAM子帳號授予訪問DLA的許可權。如何為RAM子帳號授權,請參見為RAM使用者授權。權限原則的說明如下:
權限原則名稱 權限原則說明 AliyunDLAFullAccess 用於資料湖分析的管理員權限,擁有資料湖分析的所有許可權,可以執行建立叢集、刪除叢集、提交作業等操作,停止其它帳號的作業等操作。擁有授權給DLA賬戶的角色的使用權。 AliyunDLAReadOnlyAccess 用於資料湖分析的訪客許可權,擁有資料湖分析的唯讀許可權,可以查看叢集狀態、作業狀態, 作業日誌等資訊。無法修改叢集的狀態,也無法提交作業。 AliyunDLADeveloperAccess 用於資料湖分析的開發人員許可權,可以查看叢集、作業的狀態,提交和執行作業,只能終止自己提交的作業,無法建立和刪除叢集,擁有授權給DLA賬戶的角色的使用權。 說明 在RAM存取控制中,您還可以根據需要自訂建立更細粒度的存取原則,比如一個子帳號可以使用哪些叢集。具體請參見授予RAM帳號細粒度訪問DLA的許可權。建立完權限原則後,您便可添加該自訂策略給該RAM子帳號。 - 為了讓Spark作業可以訪問您的資料,需要為DLA建立一個資料訪問的RAM角色。
- 為建立的RAM角色授權。如何為RAM角色授權,請參見為RAM角色授權。
- 授權允許子帳號可以使用步驟3中角色的權限原則。如何授權子帳號使用角色的權限原則,請參見建立自訂權限原則。
- 把步驟3中建立的權限原則授權給RAM子帳號,對應的RAM子帳號便擁有了權限原則中的許可權。如何授權,請參見為RAM使用者授權。
驗證RAM子帳號許可權配置
RAM子帳號在提交任務時需要在
conf
參數中增加spark.dla.roleArn
。這個值就是步驟2中建立的角色的ARN值。樣本如下:{
"name": "SparkPi",
"file": "oss://sparkRoleTest/original-spark-examples_2.11-2.4.5.jar",
"className": "org.apache.spark.examples.SparkPi",
"args": [
"10"
],
"conf": {
"spark.dla.roleArn": "acs:ram::xxxxxx:role/dla-sub-user-role"
"spark.driver.resourceSpec": "small",
"spark.executor.instances": 2,
"spark.executor.resourceSpec": "small"
}
}