参考创建主机运维策略后即可进行审批流程设置,在“审批流程”里,可以对“主机登录审批”、“指令审批规则”、“脚本执行审批”做相关设置;

一、主机登录审批

1.1、主机登录审批开启

主机登录审批开启后,团队成员在创建关联主机会话时,将需要获得相关角色成员的审批,审批通过后,会话才能被创建。此设置开启后一定程度上将影响运维效率,适用于安全级别较高的主机,默认情况下不开启。

团队成员在访问该运维策略关联的主机时,需要输入主机登录事由,等待审核人员的审核。

提示:审核角色中的成员在访问相关主机时,无需通过审核,可直接登录。

1.2、主机登录申请的审核

团队成员在发送了主机登录申请后,相关的审核角色成员有两种方式接收审核消息:

a)站内审核消息:审核角色成员将收到站内消息,点击查看后进入“工单中心/我的待办”,只需按照实际情况选择同意执行或拒绝执行即可。查询审批历史请切换到“工单中心/我的已办”标签页;

b)第三方应用例如微信审核消息:审核角色成员账号如果绑定了微信,其微信将收到指令审批信息,可直接点击进入进行审批操作;

二、指令审批规则

2.1、指令审批开启

您可以为当前运维策略开启指令审批,包含白名单和黑名单两种,如果是白名单,那么将只允许指令规则中的指令执行。如果是黑名单,团队成员在操作中执行的指令只要被敏感指令规则匹配,即执行相应的响应动作。

指令审批规则是安全审计的重要特性,可以有效避免团队成员进行违规操作。为了达到对敏感指令的拦截,我们首先需要有效的定义指令规则;

默认情况下,指令规则列表为空,用户可按照业务情况,添加相应的规则;

在定义敏感指令时,还需要指定指令匹配规则及相应的响应动作,只要在关联设备中执行的指令被匹配,既会触发指令审计策略,按照用户设定的响应动作进行处理;

2.2、目前支持以下四种指令匹配方式:

  • a)指令匹配:适合匹配某条指令的全部操作,该指令所有形式的执行都会被匹配,如指令规则是yum,使用指令匹配规则,那么用户输入yum、yum install、yum remove等相关指令都会被匹配;

注意:指令匹配无法匹配不合法的命令输入,例如下图这个示例,不是一条有效的指令,导致无法对命令进行解析,自然就匹配不上;

  • b)正则表达式:支持正则表达式模糊匹配,适合匹配某个指令的部分参数,如只需要匹配yum安装和卸载操作,指令规则为yum (install|remove),那么用户输入yum search不会被匹配,但是输入yum install、yum remove会被匹配;

  • c)通配符:支持通配符模糊匹配,使用场景和正则表达式类似,但语法有些许差别,如同样匹配yum安装和卸载操作,指令规则为yum {install,remove};

  • d)字符串匹配:检查用户所输入的命令中是否与指令规则中定义的字符串完全一致,适合匹配“命令+具体参数”的场景,例如指令规则为:yum install,那么用户输入yum install会被匹配,而yum 其它参数不会被匹配;

更多指令规则及匹配方式请见:运维策略指令规则设置参考

2.3、目前支持以下四种响应动作:

  • 指令提醒:对于团队管理者希望团队成员谨慎执行却时效性较高的一般敏感指令,可设置为“指令提醒”,在执行时,需要由成员自行确认后执行;

  • 指令审核:对于团队管理者认为会带来一定风险的敏感指令,可以设置为“指令审核”,这类指令执行时,会被临时阻塞,待指令审核后才能执行;

  • 指令阻断:对于团队管理者认为风险较高不希望成员执行的敏感指令,会被直接阻断,不允许执行;

  • 中断会话:对于团队管理者认为会带来极大危险性的的恶意指令,建议设置为“中断会话”。

2.4、敏感指令审核

团队成员在触发了指令审核响应动作时,相关的审核角色成员有两种方式接收审核消息:

a)站内审核消息:审核角色成员将收到站内消息,点击查看后进入“工单中心/我的待办”,在“我的待办”标签页里将列出当前所有待审批的敏感指令申请,只需按照实际情况选择同意执行或拒绝执行即可。查询审批历史请切换到“工单中心/我的已办”标签页;

b)第三方应用例如微信审核消息:审核角色成员账号如果绑定了微信,其微信将收到指令审批信息,可直接点击进入进行审批操作;

注意:团队中的指令审批角色可能有多个成员,每个成员均会收到审批消息,审批操作以时间为顺序,一个申请只能被审批一次,其他成员将不再允许对该笔申请进行审批。

2.5、特殊场景下如何绕开指令黑名单拦截

指令黑名单一旦设置,所有团队成员执行的指令被认定为敏感指令时,均会执行相应的响应动作。但在某些特殊场景下,如果需要给个别成员较高的权限,在操作时不受指令黑名单的影响,可以为其赋予临时禁用指令审批规则的权限;

进入“团队/权限管理/角色管理”,为这类成员创建一个专门的角色,如“禁用指令审批角色”,将相应成员加入到角色中;

进入“团队/权限管理/功能授权”,找到“运维策略/禁用指令审批规则”,将上一步创建的角色“禁用指令审批角色”加入到该功能权限中;

该角色中的成员在访问会话时,在会话详情中,可以看到“指令审批”,只要当前主机属于关联设备且开启了指令黑白名单,均可将指令审批设置为关闭,这样在当前会话中,所执行的指令将不受运维策略的影响。

2.6、运维策略指令规则设置参考

行云管家在会话中对敏感指令的拦截,并非是匹配用户输入的完整内容,而是对用户输入的内容进行分析,找到这条内容的核心指令,再将这条指令与运维策略中设置的指令规则进行匹配。因此在设定指令规则时,只需填写指令本身即可,无需考虑指令所在目录等元素,下面列举几个指令规则设置场景;

a)彻底拒绝某个指令的执行

如果需要彻底阻断某个指令,建议使用指令+完全匹配的方式,不论用户在会话中是否带有参数,都将被拦截。例如,为了避免有人通过shutdown重启服务器,管理员可以按以下规则进行设置:

  • 指令规则:shutdown;

  • 匹配规则:完全匹配;

那么当用户尝试在会话中以shutdown、shutdown -r now、./shutdown.sh等任何形式执行,此条命令会被自动阻断;

b)拒绝某个指令的部分参数

如果仅需要拦截某个指令部分参数,例如,不允许通过yum来安装和卸载,但允许执行yum其它操作,可以按以下规则进行设置:

  • 指令规则:yum (install|remove);

  • 匹配规则:正则表达式;

那么当用户尝试在会话中以yum install和yum remove时,此条命令会被自动阻断,但用户执行yum search时将被允许;

c)阻断对某个文件的操作

要阻断对某个特定文件的操作,例如,不允许删除root目录下的aaa.txt,文件,可以按以下规则进行设置:

  • 指令规则:rm\s.*/root/aaa.txt;

  • 匹配规则:正则表达式;

那么当用户尝试在会话中以rm /root/aaa.txt时,此条命令会被自动阻断,但用户执行rm /aaa.txt时将被允许;

三、脚本执行审批

可以设定在作业中心对是否允许对主机执行脚本的规则;