团队权限管理
行云管家中如何实现精细化的权限管理

行云管家是一种基于团队协作的工作模式,很自然的,我们需要通过权限控制来约束团队成员的行为,以实现安全运维的需要。行云管家采用基于角色的访问控制模型(Role-Based Access Control)来实现权限控制,具体来说,是将授权模型划分为功能授权和资源授权两个维度,而这两种授权都是针对角色的,角色是功能权限和资源权限的载体。当团队中的成员被添加到某一角色,该成员便自动拥有了该角色所被授予的各项权限。

功能权限原理

在基于角色的访问控制模型中,我们把功能权限赋予角色,再把角色赋予团队成员。团队成员和角色,角色和功能权限都是多对多的关系。团队成员拥有的功能权限等于他所有的角色持有功能权限之和。

资源权限原理

在行云管家中,资源授权中资源指的是导入到行云管家中的主机、对象存储Bucket、CDN加速域名等资源,在授权时,用户可以非常灵活的方式进行资源授权,既可以云账户(什么是云账户?)为单位进行整体授权,也可以云账户下某个区域/专有网络以物理网络的形态进行授权,甚至将云账户下的部分资源放到一个虚拟分组中,对该虚拟分组进行授权。和功能授权一样,我们把资源权限赋予角色,再把角色赋予团队成员。团队成员和角色,角色和资源权限都是多对多的关系。团队成员拥有的资源权限等于他所有的角色持有资源权限之和。

云账户授权

一个角色如果获得了某个云账户授权后,将默认拥有该云账户中所有资源的权限,在获得导入主机的功能权限前提下,可以向该云账户中导入主机,同时也能够查看该云账户的成本中心、网络等相关功能;

物理网络授权

物理网络授权只能获得云账户中某个区域/专有网络中的资源权限,如果网络中有新资源导入,可以动态的自动获得新资源的权限,不能查看该云账户的成本中心、网络等相关功能;

虚拟分组授权

虚拟分组由管理员手工创建,可以将云账户中部分资源添加到这个分组中,获得该资源权限的角色,对资源所属云账户并无权限,即便获得云账户相关功能权限,也无法管理云账户;

我们已经初步了解行云管家的精细化权限管理模型,现在来学习一下具体的操作攻略吧!

角色管理操作

在进行授权操作之前,您首先需要按照实际业务需求规划好相关角色,角色管理的入口位于团队设置中,进入“团队设置/权限管理”,即可查看“角色管理”。

了解系统内置角色

行云管家内置了“团队拥有者”和“管理员”两个基本角色,以及代表团队全部成员的“所有成员”这一特别角色,内置角色不可删除。

a)团队拥有者:团队拥有者默认拥有团队的完整管理权限,每个团队只允许拥有一个所有者。初始状态下,团队创建者即团队拥有者,但考虑到实际场景,团队拥有者可将此身份转移给其他团队成员。

b)管理员:管理员默认拥有大部分的业务管理权限,该角色可加入多名团队成员,用户可根据需要修改该角色的相关功能和资源授权。

c)所有成员:所有成员代表当前团队所有用户,无需再向该角色增添或删除任何用户,将某个权限项授给该角色,意味着团队内所有成员都会拥有此权限

查看角色成员

在角色列表中,我们可以看到每个角色均有“成员列表”,里面列出了该角色下的所有成员名单。

添加角色成员

一个成员可以同时拥有多个角色身份,如果要为某个成员指定某个角色,只需用鼠标点击该角色列表右上角的“添加成员”按钮,将该成员添加到该角色的成员列表中。

添加新的角色

除了系统内置的几个角色外,您可以根据实际需要自定义新的角色,在“角色管理”页面下方,点击“添加新的角色”,填写角色名称及说明后,点击“添加”即可。

修改和删除角色

对于用户自定义添加的角色,后期可对其进行修改和删除。将鼠标移动到角色名称所在表格的右上角,将出现修改角色名称和删除角色的图标,您可对角色进行修改或者删除操作。

团队拥有者转移

行云管家允许转移团队拥有者身份,鼠标移到团队拥有者列表右上角,点击“转移身份”页签,进入编辑页面,选择需要转移的目标团队成员,点击“确定”完成身份转移。

功能授权操作

前文中已经介绍了行云管家授权模型原理和角色的管理操作,当您需要修改某功能项的授权时,只需在功能授权页面将相应角色添加到相应的功能权限项即可完成。

查看功能授权

进入“团队设置/权限管理”,点击“功能授权”页签。在这里列出了行云管家全部功能权限项,您可以通过设置操作对角色进行功能授权。

功能授权设置

除了“团队拥有者保留权限”之外,用户均可修改该权限项的授权。选择一个权限项,点击右侧的“设置”,打开功能授权对话框。

这里列出了团队拥有者、管理员、所有成员三个保留角色,以及全部的自定义角色,勾选您需要授权的角色,点击“确定”即可完成设置。需要注意的是,如果您勾选了“所有成员”,那么其他所有角色将自动选中,并处于disable状态。

资源授权操作

我们前面已经了解了资源授权可以分成云账户、物理网络、虚拟分组三层授权体系。因此,我们在进行资源授权前,需要对资源授权做一个规划,确保授权逻辑是准确的。

查看资源授权

进入“团队设置/权限管理”,点击“资源授权”即可查看所有的资源授权情况,默认情况下,系统会自动创建云账户及其下的物理网络(即区域或VPC)授权,并对所有成员进行开放,您可以通过“授权”按钮修改云账户的授权情况。

修改资源授权设置

选择一个云账户或物理网络,点击右侧的“权限设置”,打开资源授权对话框,和功能授权一样,在对话框中选择对应的角色后点击“确定”即完成了该云账户的资源授权管理。

通过虚拟分组实现主机维度的权限管理模型

行云管家资源授权是以云账户为基本隔离单元,但是通常情况下,用户在导入主机时,一般是将一个云厂商账号或局域网中的所有主机都归到一个云账户中,那么在资源授权时,只能把该云账户下的所有主机都授权给某个角色,很显然这种方式是无法满足主机维度的精细化授权需求的,那么这种情况下,我们就需要通过创建虚拟分组来实现主机维度的权限管理模型。

创建新的虚拟分组

点击“创建新的虚拟分组”链接,在创建虚拟分组对话框中输入分组名称;

添加主机资源

在创建好的虚拟分组“演示主机”中,将需要进行精细化授权的主机(也支持云账户下的其它资源)添加进来;

修改虚拟分组授权角色

像云账户授权一样,修改该虚拟分组的授权策略,赋予相应的角色授权;