本文主要介绍了在DLA通过RAM访问控制授权的Action列表和Resource列表,适用于创建自定义策略实现精细化权限控制的业务需求。

自定义策略

您可以通过RAM控制台或者调用RAM APICreatePolicy创建一个自定义策略,在脚本配置方式的自定义策略中,您需要根据JSON模板文件填写策略内容。更多信息请参见创建自定义策略

示例

示例一:
主账号ID为1234567890的账户,在杭州区建立一个虚拟集群dla-vc1,配置一组策略dla-vc1-policy,允许用户在这个集群中提交作业,但被授权用户只能查看自己作业的详细日志信息,并终止自己提交的作业。
说明 被授权用户无权进行如下操作。
  • 查看其他用户作业的详细日志信息。
  • 终止其他用户提交的作业。
  • 提交代码给其他用户的交互式作业。

策略内容如下。

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:ConsolePermission",
                "openanalytics:ListSparkJobs",
                "openanalytics:SubmitSparkJob",
                "openanalytics:ListVirtualCluster",
                "openanalytics:GetVirtualCluster"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:1234567890:virtualcluster/dla-vc1",
            "Effect": "Allow"
        }
    ]
}
示例二:
主账号ID为1234567890的账户,期望赋予某个RAM用户在杭州区的管理权限,委托这个RAM用户全权管理杭州区的所有数据湖的资产。此时主账号可以建立一个policy,命名为dla-cn-hangzhou-admin。策略内容如下。
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:*"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:1234567890:*",
            "Effect": "Allow"
        }
    ]
}
说明 代码中的参数说明请参见鉴权列表

鉴权列表

控制台权限
Action Resource Action说明
ConsolePermission * 允许被授权的RAM账号可以访问DLA控制台,如果RAM账号没有此权限则只能通过阿里云OpenAPI的方式来使用DLA。
说明 Resource格式为:acs:openanalytics:${RegionId}:${OwnerId}:virtualcluster/${VirtualClusteName},所有资产用通配符用*表示,更多信息请参见权限策略基本元素
Spark管理权限
Action Resource Action说明
ListSparkJobs acs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/* 查询所有的Spark作业列表。
SubmitSparkJob 提交一个Spark作业。
提交一个Spark SQL。
GetSparkJob acs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/jobid 获取Spark作业当前状态。
获取Spark作业的日志。
获取Spark作业的详细配置信息和UI地址等内容。
获取当前Session的状态
KillSparkJob acs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/jobid 终止一个Spark作业。
ExecuteSparkStatement acs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/<jobid>/statements/* 在Session中执行一段代码, 并获得代码块的ID。
ListSparkStatements 获取Session缓存中所有的代码块的执行信息。
CancelSparkStatement acs:openanalytics:<region>:<account-id>:virtualcluster/<virtualClusteName>/sparkjobs/<jobid>/statements/<statementid> 尝试终止一个代码块的执行。
GetSparkStatement 获取指定代码块的执行信息。
LakeHouse管理权限
Action Resource Action说明
ListLakehouses acs:openanalytics:${regionId}:${parentId}:lakehouse/* 查看湖仓列表。
CreateLakehouse acs:openanalytics:${regionId}:${parentId}:lakehouse/* 创建新湖仓。
ListLakehouseWorkloads acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/* 查看工作负载列表。
CreateLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/* 创建入湖负载。
DeleteLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 删除一个工作负载。
StartLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 启动运行工作负载。
StopLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 停止一个正在运行的工作负载。
RedoLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 对工作负载重新校正数据,例如部分数据重导。
DescribeLakehouseWorkload acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 查看工作负载的描述详情。
GetLakehouseWorkloadMonitorInfo acs:openanalytics:${regionId}:${parentId}:lakehouse/${lakehouseId}/workload/${workloadId} 查看工作负载运行时的失败日志和日志UI界面。