本文介绍在MaxCompute项目中如何将RAM子账号设置为超级管理员,并提供了超级管理员在成员管理、权限管理等方面的使用建议。
背景信息
日常工作中,为了保障数据安全,通常主账号由特定人员管理,使用MaxCompute的大部分用户都只持有RAM子账号。但是项目的所有者(Owner)只能为主账号,且MaxCompute的很多权限管理需要项目所有者才可以操作(例如项目级别Flag的设置、Package跨项目资源共享配置等),因此需要一个拥有超级管理员权限的RAM子账号。
MaxCompute新增了内置的管理角色Super_Administrator,拥有项目内所有类型资源的全部权限以及项目的管理类权限,具体权限说明请参见角色规划。
Super_Administrator角色可以由项目所有者授权给RAM子账号。RAM子账号获得该角色后,即可替代项目所有者对项目执行各种管理操作,包括常用的项目级别Flag设置以及所有资源权限的管理。
设置方法
为RAM子账号授予创建项目的权限方法。请参见为RAM用户授权DataWorks相关管理权限。
选定RAM子账号后,使用该RAM子账号创建项目。此时项目所有者依然是主账号。
授权方式
通过MaxCompute客户端(odpscmd)授权
假设主账号用户bob@aliyun.com是项目project_a的所有者,Allen是bob@aliyun.com中的RAM子账号。
使用主账号执行如下命令进行授权。
--打开项目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;使用被授权RAM子账号执行如下命令查看账号自身权限。如果返回值中有Super_Administrator角色则说明赋权成功。
SHOW GRANTS;
通过DataWorks授权
(可选)添加RAM子账号为项目成员。如果RAM子账号已经为项目成员,可以忽略此步骤。
登录DataWorks控制台,在左上角选择地域。
在左侧导航栏选择工作空间。
在工作空间列表页面,单击目标工作空间名称。
在空间详情页面,单击左侧导航栏空间成员与角色。
在空间成员页签,单击添加成员。
在添加成员对话框中,从待添加账号列表中选择需要添加的组织成员显示在已添加账号列表中。
勾选为账号设置的角色,并单击确认,完成成员添加。
为RAM子账号授权Super_Administrator角色。
在空间详情页面,单击左侧导航栏空间成员与角色。
在空间成员页签,在目标成员的角色列选择空间管理员,完成账号授权。
使用被授权RAM子账号执行如下命令查看账号自身权限。如果返回值中有Super_Administrator角色则说明赋权成功。
SHOW GRANTS;
通过MaxCompute控制台授权
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择。
在项目管理页面,单击目标项目操作列的管理。
在项目配置页面,选择角色权限页签。
选择
super_administrator角色,单击对应操作列的成员管理。在成员管理对话框,勾选要添加的RAM子账号,然后单击确定,完成账号授权。
使用被授权RAM子账号执行如下命令查看账号自身权限。如果返回值中有Super_Administrator角色则说明赋权成功。
SHOW GRANTS;
使用说明
成员管理
建议明确该RAM子账号持有人的责任,一个RAM子账号对应一个开发者,避免账号共用,以便更好地保障数据安全。
一个项目中只能为一个RAM子账号指派Super_Administrator角色。可以为其他需要具备基本管理权限的账号赋予Admin角色权限。
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管理控制台对已经使用的计算资源进行查看、对所有计算资源进行管理。详情请参见资源观测和计算资源-Quota管理。
如果使用MaxCompute按量计费计算资源,则可以通过MaxCompute的元数据服务提供的相关视图对已经使用的计算资源进行查看。例如, TASKS_HISTORY可以查看详细的审计作业执行情况,包括时间、Job内容、资源消耗等信息,详情请参见TASKS_HISTORY。
说明元数据服务提供的视图只保留最近15天的数据。如果需要更长时间的数据,建议您定期自行读取数据并保存。