本文主要介紹了在DLA通過RAM訪問控制授權(quán)的Action列表和Resource列表,適用于創(chuàng)建自定義策略實(shí)現(xiàn)精細(xì)化權(quán)限控制的業(yè)務(wù)需求。

說明 您可以使用釘釘搜索群號(hào)30372915加入數(shù)據(jù)湖DLA開發(fā)交流群,聯(lián)系技術(shù)支持答疑。

自定義策略

您可以通過RAM控制臺(tái)或者調(diào)用RAM APICreatePolicy創(chuàng)建一個(gè)自定義策略,在腳本配置方式的自定義策略中,您需要根據(jù)JSON模板文件填寫策略內(nèi)容。如何創(chuàng)建自定義權(quán)限策略,請(qǐng)參見創(chuàng)建自定義權(quán)限策略

示例

示例一:

主賬號(hào)ID為123456****的賬戶,在杭州區(qū)建立一個(gè)虛擬集群dla-vc1,配置一組策略dla-vc1-policy,允許用戶在這個(gè)集群中提交作業(yè),但被授權(quán)用戶只能查看自己作業(yè)的詳細(xì)日志信息,并終止自己提交的作業(yè)。

被授權(quán)用戶無權(quán)進(jìn)行如下操作:
  • 查看其他用戶作業(yè)的詳細(xì)日志信息。
  • 終止其他用戶提交的作業(yè)。
  • 提交代碼給其他用戶的交互式作業(yè)。
策略內(nèi)容如下:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:ConsolePermission",
                "openanalytics:ListSparkJobs",
                "openanalytics:SubmitSparkJob"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:123456****:virtualcluster/dla-vc1",
            "Effect": "Allow"
        }
    ]
}
示例二:

主賬號(hào)ID為123456****的賬戶,期望賦予某個(gè)RAM用戶在杭州區(qū)的管理權(quán)限,委托這個(gè)RAM用戶全權(quán)管理杭州區(qū)的所有數(shù)據(jù)湖的資產(chǎn)。此時(shí)主賬號(hào)可以建立一個(gè)policy,命名為dla-cn-hangzhou-admin

策略內(nèi)容如下:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:*"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:123456****:*",
            "Effect": "Allow"
        }
    ]
}
說明 代碼中的參數(shù)說明,請(qǐng)參見鑒權(quán)列表

鑒權(quán)列表

說明 Resource格式為acs:openanalytics:${RegionId}:${OwnerId}:virtualcluster/${VirtualClusteName},所有資產(chǎn)通配符用*表示,更多信息,請(qǐng)參見權(quán)限策略基本元素
控制臺(tái)權(quán)限
ActionResourceAction說明
ConsolePermission*允許被授權(quán)的RAM賬號(hào)可以訪問DLA控制臺(tái),如果RAM賬號(hào)沒有此權(quán)限則只能通過阿里云OpenAPI的方式來使用DLA。
Spark管理權(quán)限
ActionResourceAction說明
ListSparkJobsacs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/*查詢所有的Spark作業(yè)列表。
SubmitSparkJob提交一個(gè)Spark作業(yè)。
提交一個(gè)Spark SQL。
GetSparkJobacs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/jobid獲取Spark作業(yè)當(dāng)前狀態(tài)。
獲取Spark作業(yè)的日志。
獲取Spark作業(yè)的詳細(xì)配置信息和UI地址等內(nèi)容。
獲取當(dāng)前Session的狀態(tài)
KillSparkJobacs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/jobid終止一個(gè)Spark作業(yè)。
ExecuteSparkStatementacs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/<jobid>/statements/*在Session中執(zhí)行一段代碼, 并獲得代碼塊的ID。
ListSparkStatements獲取Session緩存中所有的代碼塊的執(zhí)行信息。
CancelSparkStatementacs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/<jobid>/statements/<statementid>嘗試終止一個(gè)代碼塊的執(zhí)行。
GetSparkStatement獲取指定代碼塊的執(zhí)行信息。
LakeHouse管理權(quán)限
ActionResourceAction說明
ListLakehousesacs:openanalytics:${regionId}:${account-id}:lakehouse/*查看湖倉列表。
CreateLakehouseacs:openanalytics:${regionId}:${account-id}:lakehouse/*創(chuàng)建新湖倉。
ListLakehouseWorkloadsacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/*查看工作負(fù)載列表。
CreateLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/*創(chuàng)建入湖負(fù)載。
DeleteLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}刪除一個(gè)工作負(fù)載。
StartLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}啟動(dòng)運(yùn)行工作負(fù)載。
StopLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}停止一個(gè)正在運(yùn)行的工作負(fù)載。
RedoLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}對(duì)工作負(fù)載重新校正數(shù)據(jù),例如部分?jǐn)?shù)據(jù)重導(dǎo)。
DescribeLakehouseWorkloadacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}查看工作負(fù)載的描述詳情。
GetLakehouseWorkloadMonitorInfoacs:openanalytics:${regionId}:${account-id}:lakehouse/${lakehouseId}/workload/${workloadId}查看工作負(fù)載運(yùn)行時(shí)的失敗日志和日志UI界面。