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

说明 您可以使用钉钉搜索群号30372915加入数据湖DLA开发交流群,联系技术支持答疑。

自定义策略

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

示例

示例一:

主账号ID为123456****的账户,在杭州区建立一个虚拟集群dla-vc1,配置一组策略dla-vc1-policy,允许用户在这个集群中提交作业,但被授权用户只能查看自己作业的详细日志信息,并终止自己提交的作业。

被授权用户无权进行如下操作:
  • 查看其他用户作业的详细日志信息。
  • 终止其他用户提交的作业。
  • 提交代码给其他用户的交互式作业。
策略内容如下:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:ConsolePermission",
                "openanalytics:ListSparkJobs",
                "openanalytics:SubmitSparkJob"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:123456****:virtualcluster/dla-vc1",
            "Effect": "Allow"
        }
    ]
}
示例二:

主账号ID为123456****的账户,期望赋予某个RAM用户在杭州区的管理权限,委托这个RAM用户全权管理杭州区的所有数据湖的资产。此时主账号可以建立一个policy,命名为dla-cn-hangzhou-admin

策略内容如下:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "openanalytics:*"
            ],
            "Resource": "acs:openanalytics:cn-hangzhou:123456****:*",
            "Effect": "Allow"
        }
    ]
}
说明 代码中的参数说明,请参见鉴权列表

鉴权列表

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