本文为您介绍在MaxCompute项目中如何将RAM子账号设置为超级管理员,并提供了超级管理员在成员管理、权限管理等方面的使用建议。

背景信息

日常工作中,为了保障数据安全,通常主账号为特定人员管理,使用MaxCompute的大部分用户都只持有RAM子账号。但是项目的所有者(Owner)只能为主账号,且MaxCompute的很多权限管理需要项目所有者才可以操作(例如项目级别Flag的设置、Package跨项目资源共享配置等),因此您需要一个拥有超级管理员权限的RAM子账号。

MaxCompute新增了内置的管理角色Super_Administrator,拥有项目内所有类型资源的全部权限以及项目的管理类权限,具体权限说明请参见管理角色说明

Super_Administrator角色可以由项目所有者授权给RAM子账号。RAM子账号获得该角色后,即可替代项目所有者对项目执行各种管理操作,包括常用的项目级别Flag设置以及所有资源权限的管理。

设置方法

建议您为有权限创建项目的RAM子账号指派Super_Administrator角色,这样该账号在管理DataWorks工作空间的同时,也可以管理DataWorks工作空间对应的MaxCompute项目。
说明
  • 为RAM子账号授予创建项目的权限方法请参见给RAM子账号授权
  • 建议明确该RAM子账号持有人的责任,一个RAM子账号对应一个开发者,避免账号共用,以便更好地保障数据安全。
  • 一个项目中只能为一个RAM子账号指派Super_Administrator角色。您可以为其他需要有基本管理权限的账号可以赋予Admin角色权限。
选定RAM子账号后,使用该RAM子账号创建项目。此时项目所有者依然是主账号,主账号可以通过以下方式将Super_Administrator角色授权给RAM子账号:
  • 通过MaxCompute客户端授权。
    假设主账号用户bob@aliyun.com是项目project_a的所有者,Allen是bob@aliyun.com中的RAM子账号。
    1. 使用主账号执行如下命令进行授权。
      --打开项目project_a。
      use project_a;
      --为项目project_a添加RAM子账号Allen。
      add user ram$bob@aliyun.com:Allen;
      --为RAM子账号Allen授权Super_Administrator角色权限。
      grant super_administrator TO ram$bob@aliyun.com:Allen;
      --为RAM子账号Allen授权Admin角色权限。
      grant admin TO ram$bob@aliyun.com:Allen;
    2. 使用被授权RAM子账号执行如下命令查看账号自身权限。如果返回值中有Super_Administrator角色则说明赋权成功。
      show grants;
  • 通过DataWorks授权。
    1. 登录DataWorks,进入工作空间配置
    2. (可选)添加RAM子账号为项目成员。如果RAM子账号已经为项目成员,可以忽略此步骤。
      1. 工作空间配置页面左侧导航栏上,单击成员管理,进入成员管理页面。
      2. 单击右上角的添加成员
      3. 添加成员页面,从待添加账号列表中选择需要添加的组织成员显示在已添加账号列表中。
        说明 单击添加成员对话框中的刷新,即可将RAM中当前阿里云主账号下存在的RAM子账号同步至待添加账号列表中。
      4. 勾选角色并单击确定,完成成员添加。
    3. 为RAM子账号授权Super_Administrator角色。
      1. 工作空间配置页面左侧导航栏上,单击MaxCompute高级配置
      2. MaxCompute高级配置页面的左侧导航栏上,单击自定义用户角色
      3. 单击需要授权角色后的成员管理,从待添加账号列表中选择需要添加的组织成员显示在已添加账号列表中。成员管理.png
      4. 单击确定,完成账号授权。
    4. 使用被授权RAM子账号执行如下命令查看账号自身权限。如果返回值中有Super_Administrator角色则说明赋权成功。
      show grants;

使用说明

  • 成员管理
    • MaxCompute支持云账号(主账号)和RAM子账号。为了更好的保障数据安全,建议项目中添加的成员均为此项目所有者的RAM子账号。

      主账号可以控制RAM子账号,在人员转岗离职等场景下主账号可以注销或更新对应的RAM子账号以保证数据安全。

      说明 如果通过DataWorks进行项目成员管理,只能添加项目所有者的RAM子账号作为项目成员。
    • RAM子账号只能通过主账号添加。即使拥有Super_Administrator角色的超级管理员,也需要主账号先创建RAM子账号后,才可以将创建成功的RAM子账号添加到项目中。
    • 建议您只添加需要在当前项目进行数据开发(即会在当前项目执行作业)的用户为项目成员。对于有数据交互业务需求的用户,通过Package方式进行跨项目资源共享,避免将过多用户添加至项目内而增加了成员管理的复杂度。
    • 员工转岗或离职,需要先将其持有的RAM子账号在项目中移除,然后再通知项目所有者注销RAM子账号。如果是拥有Super_Administrator角色的RAM子账号持有者转岗或离职,则需要由主账号执行移除、注销账号操作。
  • 权限管理
    • 建议通过角色进行权限管理,即权限和角色(Role)关联,角色(Role)和用户(User)关联。
    • 建议实施最小够用原则,避免权限过大造成安全隐患。
    • 跨项目使用数据时,建议通过Package方式实现,避免资源提供方增加成员管理成本,只需要管理Package即可。
    说明 拥有Super_Administrator角色的RAM子账号本身已经拥有项目所有资源的查询和操作权限,所以无须再给自身授权。
  • 权限审计

    可以通过MaxCompute的元数据服务提供的视图进行权限审计。详情请参见元数据视图列表

  • 成本管理
    关于成本管理,请参见查看账单详情。对于RAM子账号,需要主账号给RAM子账号赋予费用中心相关权限才可以进行账单数据的查询。授权方法请参见为RAM角色授权,所需权限如下:
    • AliyunBSSFullAccess:管理费用中心的权限。
    • AliyunBSSReadOnlyAccess:费用中心的访问、只读权限。
    • AliyunBSSOrderAccess:费用中心查看订单、支付订单及取消订单的权限。
    说明 费用中心相关权限与MaxCompute项目的Super_Administrator角色无关联,需要单独授予给用户。
  • 资源使用管理
    • 如果您使用MaxCompute包年包月计算资源,则可以通过MaxCompute管家对已经使用的计算资源进行查看、对所有计算资源进行管理。详情请参见MaxCompute管家
    • 如果您使用MaxCompute按量计费计算资源,则可以通过MaxCompute的元数据服务提供的相关视图对已经使用的计算资源进行查看。例如, TASKS_HISTORY可以查看详细的审计作业执行情况,包括时间、Job内容、资源消耗等信息,详情请参见TASKS_HISTORY
      说明 元数据服务提供的视图只保留最近15天的数据。如果需要更长时间的数据,建议您定期自行读取数据并保存。