为了更细粒度的管控权限,实现最小化授权,DataWorks的工作空间为您提供了拥有不同功能权限的角色,您可以根据业务需求,添加目标成员至工作空间,并授予其相应的角色。同时,您还可以自定义角色,针对实际业务制定权限功能。

背景信息

同一个DataWorks工作空间可以添加多个用户,当多个用户共同使用该工作空间时,如果用户权限过大,权限使用不当则会影响数据的安全。同时,如果用户权限过小,则所需的功能可能无法使用。为了解决该问题,DataWorks的工作空间为您提供了成员及角色等身份,您可以针对不同用户的工作空间使用需求,授予其相应的功能权限角色。

1. DataWorks提供预设工作空间级别角色,其涉及的身份概念如下:
  • 成员:指被加入至DataWorks工作空间内的主账号或RAM用户。
  • 云账号:指阿里云的主账号或RAM用户。
  • 角色:指DataWorks工作空间的成员,在工作空间中拥有的权限身份的载体。 具体如下:
    角色 描述
    空间所有者 工作空间所有者拥有工作空间的所有权限,正常为阿里云主账号。例如,可以根据需求给RAM用户授予相应角色、删除本工作空间非项目所有者的成员等。
    空间管理员 除拥有开发角色和运维角色的全部权限外,还可以进行添加/移出工作空间成员并授予角色,创建自定义资源组等操作。
    开发 负责数据开发页面的设计和维护工作。
    运维 负责在运维中心页面管理全部任务的运行情况并进行相应处理。
    部署 仅在多工作空间模式时审核任务代码并决定是否提交运维。
    访客 仅有只读权限,可以查看数据开发页面的业务流程设计和代码内容。
    安全管理员 仅有数据保护伞模块的操作权限,无其它模块权限。详情请参见数据保护伞
    模型设计师 拥有数据建模的使用权限。

    不同角色拥有的DataWorks相关功能权限请参见权限列表。DataWorks预设角色权限与MaxCompute引擎(开发项目)角色与的对应关系请参见角色与权限详情

2. 当DataWorks的预设角色不能满足您的需求时,您还可以通过角色管理自定义DataWorks角色。

DataWorks自定义空间级别角色可控制某个该角色是否有用某个空间级别模块的权限,如果您当前使用的是MaxCompute引擎,您也通过配置引擎权限映射使该角色拥有引擎资源的相关操作权限。具体拥有的权限与您在引擎权限映射时候选择的引擎Role拥有的权限决定。详情可参考文档:管理角色模块权限

使用限制

  • 仅DataWorks企业版工作空间才可以添加自定义角色,详情请参见DataWorks各版本详解。您可以参考DataWorks增值版本,升级DataWorks工作空间至企业版。
  • 空间管理员角色和工作空间所有者,可以添加成员,修改成员角色,删除成员及已创建的自定义角色
  • 当前仅支持使用阿里云主账号,或被授予MaxCompute项目admin、Superadmin角色的RAM用户,配置自定义的DataWorks新角色与MaxCompute引擎的权限映射关系。

逻辑说明

在标准模式工作空间下,一个DataWorks工作空间下层会对应两个引擎项目,分别作为DataWorks层面的开发环境和生产环境。同时,为了方便用户进行数据开发工作,这些DataWorks预设角色与所绑定的引擎Role存在映射关系。下面以当授权用户DataWorks预设空间角色与授权用户DataWorks自定义空间级别角色操作的 行为示意图:

场景一:授权DataWorks预设空间级别角色

拥有空间管理员权限的用户可以将RAM用户添加到工作空间并授权DataWorks工作空间开发角色:授予预设角色
  • DataWorks平台层面:DataWorks上给一个RAM用户授予开发角色,该用户可以在DataWorks开发代码并且提交,但是不能将代码直接发布到生产环境,发布生产的操作需要有运维权限(项目所有者、管理员、运维角色拥有此权限)。
  • MaxCompute引擎层面:在DataWorks成员管理处为RAM用户授予开发角色这个操作,在MaxCompute引擎层面就是为这个RAM用户授予了一个role_project_dev这个角色,这个角色会被赋予一些当前MaxCompute项目的表和项目的权限。
    说明 当授予阿里云RAM子账号预设管理员角色,其拥有的DataWorks功能权限较多,但同样不能直接访问生产表。

    此处说明的子账号特指,未被指定为非调度引擎访问身份(未被指定为生产项目MaxCompute访问身份)的子账号。

场景二:授权DataWorks自定义空间级别角色

拥有空间管理员权限的用户将RAM用户添加到工作空间并授权DataoWrks工作空间自定义角色:授予自定义角色
  • DataWorks平台层面:DataWorks上给一个RAM用户授予DataWorks自定义角色,该用户只能访问自定义角色所赋予的模块权限。
  • MaxCompute引擎层面:
    • 如果该DataWorks自定义角色未设置引擎权限映射,那么RAM用户授予该DataWorks自定义角色后,他只有该DataWorks自定义角色所拥有的DataWorks模块功能权限,无法通过命令进行引擎查询等相关操作。
    • 如果该DataWorks自定义角色设置了引擎权限映射,那么RAM用户授予该DataWorks自定义角色后,他除了有该DataWorks自定义角色所拥有的DataWorks模块功能权限外,他还拥有该DataWorks自定义角色所映射的引擎权限。
说明 除了RAM用户被指定为调度引擎访问身份(生产项目MaxCompute访问身份)这一场景外,其他场景下,RAM用户加入工作空间后默认没有生产环境权限,操作及访问生产表权限需要在安全中心进行申请,详情请参见:通过新版安全中心申请表权限。关于MaxCompute访问身份详情说明,可参考文档:绑定MaxCompute计算引擎

进入成员管理页面

  1. 登录DataWorks控制台
  2. 在左侧导航栏,单击工作空间列表
  3. 进入工作空间配置页面。
    您可以通过以下两种方式进入工作空间配置
    • 单击相应工作空间后的工作空间配置。在工作空间配置对话框中,单击更多设置,进入工作空间配置页面。更多设置
    • 单击相应工作空间后的进入数据开发。在数据开发页面,单击右上角的工作空间管理工作空间管理图标,进入工作空间配置页面。工作空间配置
  4. 工作空间配置页面左侧导航栏,单击成员管理,进入成员管理页面。

管理成员

成员管理页签,您可以执行如下操作:
  • 查看成员信息。
    您可以查看当前DataWorks项目空间下,所有成员的账号、角色等信息,也可以根据成员名称、云账号、以及某类别的角色进行筛选,查看目标条件的成员信息及相应角色的成员数量。方便您对成员及相应角色进行集中管控。查看成员信息
  • 添加成员。
    1. 单击成员管理页签右上角的添加成员
    2. 添加成员对话框中的待添加账号模块,勾选需要添加的成员账号。添加角色
    3. 单击>图标,将需要添加的RAM用户移动至已添加账号中。
    4. 勾选需要授予的角色。
    5. 单击确定
  • 删除成员。
    您可以在成员管理页面,单击目标成员操作列的删除,删除单个成员。如果DataWorks工作空间中存在多个待删除的成员,则您可以勾选多个成员,批量删除。删除成员

管理角色

工作空间预设角色权限无法修改,但您可以通过角色管理来针对DataWorks自定义空间级别角色是否有用某个空间级别模块的权限。以下为对DataWorks自定义空间级别角色管理详情:

角色管理页签,您可以执行如下操作:
  • 添加自定义角色。
    1. 单击角色管理页签右上角的添加自定义角色
    2. 添加自定义角色对话框输入自定义的DataWorks角色名称。例如,test。
    3. 为自定义的新角色配置DataWorks不同的空间级别模块的权限。
      • 无权限:表示该角色无相应模块的查看权限。
      • 只读:表示该角色只能查看相应模块的数据信息,不能修改模块数据。
      • 读写:表示该角色可以修改相应模块的数据信息。
      DataWorks权限
    4. 配置引擎权限映射
      您可以为自定义的DataWorks新角色配置与其他引擎权限的映射关系,使该角色拥有对应引擎权限。例如,授权DataWorks新角色(test)访问目标MaxCompute项目时,使用MaxCompute的admin角色。MaxCompute与DataWorks权限的对应关系请参见角色与权限详情
      说明
      • 目前仅支持MaxCompute引擎配置引擎权限映射。
      • 当前仅支持使用阿里云主账号,或被授予MaxCompute项目admin、Superadmin角色的RAM用户,配置自定义的DataWorks新角色与MaxCompute引擎的权限映射关系。
      配置引擎权限映射
    5. 单击开始配置
  • 查看或编辑角色。
    您可以在角色管理页签,查看DataWorks工作空间已配置的预设角色自定义角色,或编辑、删除自定义角色预设角色的权限信息请参见权限列表查看角色

查看用户权限

您可以在MaxCompute_SQL任务中,执行如下语句,查询自己的权限信息。
show grants --查看当前用户自己的访问权限。
show grants for <username> --查看指定用户的访问权限,仅由空间管理员才有执行权限。

更多查看权限的命令请参见权限查看