团队
权限管理

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

行云管家是一种基于团队协作的工作模式,很自然的,我们需要通过权限控制来约束团队成员的行为,以实现安全运维的需要。行云管家采用基于角色、部门、成员的访问控制模型来实现权限控制,具体来说,是将授权模型划分为功能授权和资源授权两个维度,在两个维度基础上进行对象授权(角色、部门、成员),将这两种权限授权给团队中的某成员或他所在的角色、部门时,该成员便自动拥有了所被授予的各项权限。

1.1、授权对象原理

行云管家采用角色、部门、成员来作为授权对象进行功能、资源等授权,团队管理时,可以把成员加入到角色里,或者加入到组织架构的相关部门里。然后基于该角色或部门进行功能、资源授权。同时,也可以直接对该成员进行功能、资源授权。成员最终拥有的权限为他所在的角色、部门以及他自身拥有的权限的综合。

1.2、功能权限原理

除了可以授权给团队成员,在基于角色、部门的访问控制模型中,我们还可以把功能权限赋予角色或部门,再把角色、部门赋予团队成员。以角色为例,团队成员和角色,角色和功能权限都是多对多的关系。团队成员拥有的功能权限等于他所有的角色持有功能权限之和。

1.3、资源权限原理

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

(1)云账户授权

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

(2)物理网络授权

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

(3)分组授权

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

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

二、对象授权

2.1、角色管理操作

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

(1)了解系统内置角色

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

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

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

c)审计管理员:审计管理员是系统内置角色,不可删除,默认可查看团队所有的审计与操作日志,用户也可根据需要修改该角色的授权。

d)操作员:操作员是系统内置角色,不可删除,默认拥有访问主机等基本操作的功能权限,用户也可根据需要修改该角色的授权。

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

(2)查看角色成员

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

(3)添加角色成员

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

(4)添加新的角色

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

(5)修改和删除角色

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

(6)团队拥有者转移

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

2.2、部门管理操作

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

(1)开启部门管理功能

在“团队设置”的“团队成员”里,点击右上角的“组织架构视图”来切换为组织架构视图。

(2)查看部门成员、添加新部门

开启组织架构视图后,可以在“团队成员”的“组织架构视图”里做以下操作:查看当前部门的成员、移动成员、添加新部门、删除部门、编辑部门名称等。

(3)部门授权管理

开启组织架构视图后,可以在“权限管理”里看到“部门授权管理”(没开启前是看不到的),可以在这里里做以下操作:查看部门功能及资源授权情况,或在这里直接进行相关功能、资源权限授权。

三、功能授权操作

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

3.1、查看功能授权

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

3.2、功能授权设置

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

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

四、资源授权操作

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

4.1、查看资源授权

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

4.2、修改资源授权设置

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

4.3、通过分组授权实现主机维度的权限管理模型

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

(1)创建新的虚拟分组

点击“分组授权”里的“直接添加云资源,实现云资源的精细授权”链接,在添加资源到虚拟分组中选择要添加到虚拟分组的资源类型;

(2)添加主机资源

将需要进行精细化授权的主机(也支持云账户下的其它资源)添加进来;

(3)添加授权对象

像云账户授权一样,添加需要授权的对象;

五、脚本任务库授权操作

在“权限管理”这里,我们还可以对自动化运维里相关的脚本库、任务库进行授权。