MaxCompute项目子账号做超级管理员

场景

主账号不是大数据团队管理,使用MaxCompute员工都只持有子账号,而project的owner只能为主账号,但是很多MaxCompute的权限管理还需要owner才可以操作(如项目级别的flag设置,package跨项目资源共享配置等),因此非常需要一个子账号拥有超级管理员权限。

之前有写过一篇文章《MaxCompute 项目子账号做权限管理》,是通过MaxCompute的admin role来解决问题,本文主要介绍super_administrator role,以及作为超级管理员日常管理工作中的一些建议。

关于super_administrator role

Super_Administrator role:MaxCompute新增内置的管理角色,拥有操作项目内所有类型资源的权限和管理类权限,具体权限请参考文档管理角色。该角色可由project owner指派给子账号,子账号获得该角色后,即可代替owner对该project在进行数据开发过程中所需的各种管理操作,包括常用的项目级别的flag设置以及所有权限管理操作。

指派子账号为超级管理员

前提建议:

  • 可以将有权限创建project的子账号指派为super_administrator role,这样该账号既可以很好的管理DataWorks项目的同时管理对应的Max Compute project。>如何授权子账号可创建project可参考[此文档](https://help.aliyun.com/document_detail/74248.html?spm=a2c4g.11186623.2.20.2ac614bbBpKuoe#title-vqq-tk3-15k)。
  • 建一个一个project只能指派一个子账号为super_administrator role,其他需要有基本的权限管理可以指派admin role
  • 需要注意明确该子账号持有人的职责,建议一个子账号对应一个开发者,避免账号共用,以便能更好的保障数据安全。

确认好具体哪个子账号可以用户超级管理员(同时该子账号可以创建项目空间),子账号创建好project,此时projec的owner依然是主账号,主账号可以通过以下方式将super_administrator role 授权给该子账号。

  • 通过MaxCompute客户端授权:假设主账号用户[email protected]是项目空间project_a的Owner,Allen是[email protected]中的RAM子账号。打开项目空间project_a。use project_a; 为项目空间project_a添加RAM子账号Allen。 add user [email protected]:Allen; 为子账号Allen授权Super_Administrator角色权限。 grant super_administrator TO [email protected]:Allen; 为子账号Allen授权Admin角色权限。 grant admin TO [email protected]:Allen;
  • 通过DataWorks授权
  1. 登录DataWorks,进入工作空间配置页面。
  2. 添加子账号为项目空间成员(已经添加过可忽略)。
    1) 单击左侧导航栏上的成员管理,进入成员管理页面。
    2) 单击右上角的添加成员。
    3) 在添加成员页面,从待添加账号列表中选择需要添加的组织成员显示在已添加账号列表中。
    4) 勾选角色并单击确定。
  3. 为子账号授权Super_Administrator角色。1) 单击左侧导航栏MaxCompute高级配置。 2) 单击左侧导航栏自定义用户角色。 3) 单击需要授权角色后的成员管理,从待添加账号列表中选择需要添加的组织成员显示在已添加账号列表中。 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/bb8db4b3c8a64032b79c870d527d5e5c.png)20/jpeg/36371/1580893560423-d5235e7c-b42f-4809-805b-faa68d5c9d08.jpeg) 单击确定,完成账号授权。
  • 子账号查看自身的权限:
    cmd中执行 show grants;,如果有Super_Administrator 这个role,说明已经赋权成功。

成员、权限管理

拥有super_administrator 角色的子账号本身已经拥有所有project资源的查询和操作权限,所以无须再给自身授权。以下给出针对其他成员和成员权限管理的建议。

成员管理

  • MaxComopute 支持云账号和RAM子账号(子账号只能为Project owner的子账号),为了更好的保障数据安全,建议project中添加的user均为owner主账号的RAM子账号。主账号可控制子账号,如人员转岗离职等,主账号可以注销或更新对应的子账号。> 若通过DataWorks进行项目成员管理,只能添加owner的RAM子账号。
  • RAM子账号只能通过主账号添加(这个不是MaxCompute可以改变的事实),所以对于某project 成员即使拥有super_administrator 角色的超级管理员,也只能先需要主账号先创建好其他子账号才可以将其他子账号添加到project中。
  • 建议只添加需要在当前project进行数据开发(即会在当前project执行job)的user,对于有数据交互业务需求的user,建议通过package方式进行跨project资源共享,避免把user添加到project增加成员管理的复杂度。
  • 员工转岗或离职,先把对应子账号在project里remove掉,然后再通知owner注销子账号。如果是拥有super_administrator 角色的子账号持有者转岗或离职,则需要由主账号进行remove以及注销账号。

权限管理

  • 建议通过角色进行权限管理,即权限和role关联,role和user关联。
  • 建议实施最小够用原则,避免权限过大造成安全隐患。
  • 跨project使用数据时,建议通过package方式实现,避免资源提供方增加成员管理成本,只需要管理package。

权限审计

可以通过MaxCompute的元数据服务Information_Schema服务提供的相关视图进行权限审计。

资源使用以及成本管理

作为MaxComopute主要负责人,不应该仅仅关注成员和权限,还有资源使用、成本都需要关注。

  • 关于成本,避不开账单,可以参考文档《查看账单详情》,对于子账号,需要主账号在RAM访问控制-角色管理给子账号所在角色赋相关权限:(AliyunBSSFullAccess—管理费用中心(BSS)的权限;或,AliyunBSSReadOnlyAccess—只读访问费用中心(BSS)的权限;或,AliyunBSSOrderAccess—费用中心(BSS)查看订单、支付订单及取消订单的权限)> 注意,费用中心相关权限与MaxCompute project的super_administrator role无关联。
  • 关于资源使用管理,如果您使用MaxCompute包年包月的计算资源,则可以通过MaxCompute 管家进行计算资源的使用查看及管理。

查看更多:https://yq.aliyun.com/articles/744382?utm_content=g_1000103979

上云就看云栖号:更多云资讯,上云案例,最佳实践,产品入门,访问:https://yqh.aliyun.com/

原文地址:https://www.cnblogs.com/yunqishequ/p/12307541.html

时间: 2024-10-08 04:51:57

MaxCompute项目子账号做超级管理员的相关文章

如何通过Dataworks禁止MaxCompute 子账号跨Project访问

摘要: 之前有很多DataWorks用户问MaxCompute访问权限问题,比如子账号为什么可以增删查别人在别的项目创建的表,即使这个子账号并没有加入那个项目 . 今天手把手教大家实现子账号授权并关闭跨Project的数据访问权限. 原文链接:http://click.aliyun.com/m/43802/ 之前有很多DataWorks用户问MaxCompute访问权限问题,比如子账号为什么可以增删查别人在别的项目创建的表,即使这个子账号并没有加入那个项目 . 今天手把手教大家实现子账号授权并关

子账号表的设计(不用递归实现查询,同一张表做外键)

最近公司在做<资管系统>账号管理部分需要得到所有子账号.父账号等等信息.个人觉得用递归查询比较繁琐,于是设计了以下表 关键字段:账号id,父账号.顶级账号.账号层次(也就是树的级别). 查询思路:查找顶级账号用层这个字段直接搞定 查找某个账号的子账号用该账号的顶级账号和层搞定 查找父账号用该账号的顶级账号和层搞定 设计难点:一张表外键关联到自己.添加修改删除时对数据的有效性有很大的保障 提供源码(包含查询方法),需要其他字段自行增加 (勿喷) 表和数据 -- -----------------

MaxCompute项目空间内的访问控制和权限管理

摘要: 本文将为您介绍项目空间内的访问控制和权限管理. 项目空间内的访问控制分为以下五类: 用户管理ACL授权Policy授权角色管理基于标签的访问控制管理用户管理任意非项目空间Owner用户必须被加入MaxCompute项目空间中,并被授予相对应权限,方能操作MaxCompute中的数据.作业.资源及函数.示例如下: 假设Alice创建一个名为WonderLand的项目,自动成为Owner.没有Alice的授权,其他任何人都无法访问WonderLand. Alice要授权Bob允许他访问Won

Win7下超级管理员创建普通权限任务

已转至新的博客 http://www.raysoftware点击打开链接.cn/?p=49 项目中用到一个功能,Win7下超级管理员创建普通权限任务. 试了几种办法,例如获取资源管理器的Token,然后以这个Token用CreateProcessWithTokenW创建任务.这样做是可以的. 但是如果当前没有资源管理器或者其他普通权限的任务怎么办?CreateToken自己构造一个Token也可以,但是那些参数看了就头大. 试了一下以超级用户方式启动任务管理器用菜单中的运行,居然是默认创建普通权

Windows 8提升普通管理员权限为超级管理员权限以及激活超级管理员Administrator

在Windows 8下运行某些操作时(比如删除一些文件或者更改某些系统设置时)系统会提示我们权限不够.须要Administrator账户的权限. 相信很多其它的使用者都会觉得自己当前使用的账户已经是系统中最大权限的全部者了,为什么还会来个Administrator的用户权限呢?其实,在Windows系列的操作系统上.超级管理员(也就是最大权限全部者)默认情况下都是Administrator,并且在XP.Windows 7上,刚装好系统后就有了一个账户,此账户便是超级管理员Administrato

windows8 本地解析和切换到超级管理员账户下编辑该文件

win8 hosts文件路径:C:\Windows\System32\drivers\etc 我的电脑->右击"管理"->本地用户和组->双击点击右边的"用户"->双击点开Administrator用户->去掉"账号已禁用"前面的勾->重启->切换到超级管理员账户下编辑该文件

linux学习笔记(3):ubuntu使用超级管理员root登录

Ubuntu有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起.对于其他Linux系统来 说,一般在安装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份.与之相反,Ubuntu默认安装时,并没有 给root用户设置口令,也没有启用root帐户.问题是要想作为root用户来运行命令该怎么办呢?没关系,我们可以使用sudo命令达此目的. sudo是linux下常用的允许普通用户使用超级用户权限的工具,该命

Windows7启用超级管理员administrator账户的多种方法

开启win7家庭普通版的超级管理员账户Administrotor WIN7家庭普通版没有"本地用户和组"项,不能通过"用计算机右键-管理"的方法开启超级管理员帐户Administrator. 要开启Win7家庭普通版本的超级管理员账户,你首先需要使用拥有管理员权限的账户登录系统,然后按照以下步骤操作: 1> 打开注册表:点击"开始"-> "运行" 在运行窗口中输入:regedit 2> 找到注册表项:HKEY

windows下忘记mysql超级管理员root密码的解决办法

今天帮一个朋友找回了MYSQL的超级管理员ROOT密码,开始输入命令的时候少打了个"点"害的折腾了几个小时,终于解决了,写个教程,方便以后使用! 如果你是服务器是 windows xp/2000/2003/nt 都可以使用这个方法来找回丢失 MYSQL超级管理员root的密码 1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如 d:mysql20080505in 3,进入mysql安全模式,即当mys