更新时间:2022-12-07 GMT+08:00

权限管理概述

DLI服务不仅在服务本身有一套完善的权限控制机制,同时还支持通过统一身份认证服务(Identity and Access Management,简称IAM)细粒度鉴权,可以通过在IAM创建策略来管理DLI的权限控制。两种权限控制机制可以共同使用,没有冲突。

IAM鉴权使用场景

企业用户在云上使用DLI服务时,需要对不同部门的员工使用DLI资源(队列)进行管理,包括资源的创建、删除、使用、隔离等。同时,也需要对不同部门的数据进行管理,包括数据的隔离、共享等。

DLI使用IAM进行精细的企业级多租户管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制云资源的访问。

通过IAM,您可以在云帐号中给员工创建IAM用户,并使用策略来控制他们对云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有DLI的使用权限,但是不希望他们拥有删除DLI等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DLI,但是不允许删除DLI的权限策略,控制他们对DLI资源的使用范围。

对于新建的用户,需要先登录一次DLI,记录元数据,后续才可正常使用。

IAM是云提供权限管理的基础服务,无需付费即可使用,您只需要为您帐号中的资源进行付费。

如果云帐号已经能满足您的需求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用DLI服务的其他功能。

DLI系统权限

表1所示,包括了DLI的所有系统权限。

权限类别:根据授权精程度分为角色和策略。
  • 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
  • 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DLI服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。
表1 DLI系统权限

系统角色/策略名称

描述

类别

DLI FullAccess

数据湖探索所有权限。

系统策略

DLI ReadOnlyAccess

数据湖探索只读权限。

系统策略

Tenant Administrator

租户管理员。

  • 操作权限:具有所有云服务的管理和使用权限。创建后,可通过ACL赋权给其他子用户使用。
  • 作用范围:项目级服务。

系统角色

DLI Service Admin

DLI服务管理员。

  • 操作权限:具有数据湖探索服务队列、数据的管理和使用权限。创建后,可通过ACL赋权给其他子用户使用。
  • 作用范围:项目级服务。

系统角色

DLI权限分类

DLI服务权限分类如表2所示,其可控制的资源请参考表4

表2 DLI权限分类

权限大类

权限小类

控制台操作

SQL语法

API定义

队列权限

队列管理权限

请参考队列权限管理

请参考《数据湖探索API参考》中的“权限相关API > 队列赋权”章节。

队列使用权限

数据权限

数据库权限

请参考数据库权限管理表权限管理

请参考 《数据湖探索SQL语法参考》 中的“批作业SQL语法 > 数据权限管理 > 数据权限列表”章节。

请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。

表权限

列权限

作业权限

Flink作业

请参考Flink作业权限管理

请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。

程序包权限

程序包组权限

请参考程序包组和程序包权限管理

请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。

程序包权限

跨源认证权限

跨源认证权限

请参考跨源认证权限管理

请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。

场景举例

某互联网公司,主要有游戏和音乐两大业务,使用DLI服务进行用户行为分析,辅助决策。

图1所示,“基础平台组组长”在云上申请了一个“租户管理员”(Tenant Administrator)帐号,用于管理和使用云的各个服务。因为“大数据平台组”需要使用DLI进行数据分析,所有“基础平台组组长”增加了一个权限为“DLI服务管理员”(DLI Service Admin)的子帐号用于管理和使用DLI服务。“基础平台组组长”按照公司两个业务对于数据分析的要求,创建了“队列A”分配给“数据工程师A”运行游戏数据分析业务,“队列B”分配给“数据工程师B”运行音乐数据分析业务,并分别赋予“DLI普通用户”权限,具有队列使用权限,数据(除数据库)的管理和使用权限。

图1 权限分配

“数据工程师A”创建了一个gameTable表用于存放游戏道具相关数据,userTable表用于存放游戏用户相关数据。因为音乐业务是一个新业务,想在存量的游戏用户中挖掘一些潜在的音乐用户,所以“数据工程师A”把userTable表的查询权限赋给了“数据工程师B”。同时,“数据工程师B”创建了一个musicTable用于存放音乐版权相关数据。

“数据工程师A”“数据工程师B”对于队列和数据的使用权限如表3所示。

表3 使用权限说明

用户

数据工程师A(游戏数据分析)

数据工程师B(音乐数据分析)

队列

队列A(队列使用权限)

队列B(队列使用权限)

数据(表)

gameTable(表管理和使用权限)

musicTable(表管理和使用权限)

userTable(表管理和使用权限)

userTable(表查询权限)

队列的使用权限包括提交作业和终止作业两个权限。