RPA 账号密码怎么管,机器人跑起来之后的权限边界
流程要登录目标系统,机器人拿谁的身份进去,决定了权限、密码、审计三件事挂在哪。这篇讲RPA账号密码管理怎么落地,借账号和申请专用机器人的差别在哪,权限申请该对着哪五条问,密码为什么不写在流程文件里,凭证轮换和账号交接的制度怎么定,出事之后日志里要留下什么才查得到,以及有几类账号最好别交给机器人。
机器人登录系统,用谁的账号

自动化流程要登录某个系统,第一个问题是机器人拿什么身份进去。常见做法有三种,借用一个同事的账号,申请一个专用的机器人账号,或者拿自己的账号先跑通再说。前两种在项目初期都能跑起来,代价要过几个月才显出来。
借账号的流程最快。跟同事说一声,把账号密码填进流程,当天就能上线。这类做法的问题也很典型。账号是有主人的。主人转岗,工号停用,流程第二天早上开始报登录失败。主人换密码,所有借了这个账号的流程同时断。主人离职,账号被回收,流程还挂在定时任务里,每天跑一次,每次都失败。
更麻烦的是权限。借账号意味着机器人的权限就是那个人的权限。对方是财务主管,机器人在系统里就拥有财务主管能做的所有事,包括审批,包括导出,包括改别人的数据。流程本身只需要读一个列表,给到的权限却是整个岗位的。
然后是审计。系统日志里记的是账号名,机器人和人在日志里长得一模一样。出问题要查的时候,看到的只是一个工号,得再去问这个人那天有没有操作过。人说不记得,链条就断在这里。
所以这件事的核心不在密码存哪儿,在于机器人有没有一个独立于自然人的身份。这个身份一旦有了,权限、密码、审计三件事才有地方挂。
借账号和专用账号差在哪
专用账号的意思是,在目标系统里申请一个给机器人的账号。这个账号背后不挂某个员工,而是挂在流程资产或者某个运维小组名下。
申请的时候要做的事比借账号多几步。账号申请单上要写清楚这个账号要访问哪些系统、做什么操作、有效期多久。这几步听着像走形式,实际是唯一能让目标系统的管理员知道有个非人账号在用。走形式走多了,管理员会麻木,以后再申请类似的账号就更快,也不会有人再拦。
专用账号的好处集中在三处。
人员变动不影响流程。机器人账号不随人离职而失效,也不随人转岗而变权限。做流程的人换了,流程照跑。
权限可以按流程的最小需要给。按岗位整套给的做法,等于把用不上的权限也给了出去。上面那个财务主管的例子,专用账号只要列表查看权限,别的都给不了。给少了机器跑不动,给多了出事时说不清是谁的责任,所以权限申请这一步得写细。
日志能对得上。机器人的操作在日志里是一个独立主体,查的时候直接定位到它,不用去猜是哪个人的动作。配合流程标识和时间戳,一次排查能收敛到具体的几次操作。
代价是流程要维护一组账号。目标系统换了地址、认证方式换了、密码到期要改,这些都得有人跟。账号数量一多,这活就成了新的负担。
一个折中做法是按流程族建专用账号,一条流程一个账号通常没必要。同类流程共用一个机器人账号,权限取它们的并集,再加个约束条件。这样账号数量可控,审计粒度落在流程族这一层,通常够用。
权限申请时该对着哪五条问
权限申请单上写某系统操作权限,这种申请大概率会被退回,或者被按岗位模板给一整套。写细一点的话,对着下面五条问一遍就有答案了。
- 只读还是要写。要写,就写清楚能改哪一类单据,改哪些字段。
- 能操作哪些数据。是全公司的数据,还是本部门的。是当前这一年的,还是全部历史。
- 能不能导出。导出权限往往是真正敏感的那一项,它把系统内部的数据搬到了系统外面。
- 能不能改权限,能不能审批。这两条只要有一条是能,机器人账号就等同于半个管理员。
- 有效期。设一个到期日,到期前续期。写上到期日,也逼着人定期回来看一眼这个流程还跑不跑。
这五条里,第三条和第四条最容易被漏掉。写流程的人关注的是数据有没有读到,权限多给了什么感觉不到,等到出事才看得出。
还有一个细节,权限申请的理由要写这条流程要做什么,不要写参照某岗位配置。前者是按最小需要申请,后者的意思是照抄一个人的权限,管理员只能照抄。
这里要分清机器人账号权限和人手里的权限。人离职,权限自动收回。机器人这边,流程下线了账号还挂着的情况并不少见。
机器人账号权限这件事,定得太松等于没定。申请单上写不清楚的,管理员就没法判断,只能照着老规矩给一整套。写清楚了,其实是在替管理员省事。
密码放在流程文件里,等于公开
说完身份说密码。RPA账号密码管理最容易破口的地方,就是把密码明文写进流程脚本或者配置文件,然后这个文件进了 Git 仓库。
写流程的人知道密码是敏感信息,他想的可能是我们用私有仓库。但私有仓库的访问范围通常比想象中大,代码要交接,开发要拉分支,历史提交里还留着每一次改动。要删干净得去改写历史,比想象中麻烦。
RPA账号密码管理这件事,栽得最狠的往往不是加密算法选得不对,是压根没把密码当回事。密码躺在流程文件里,跟着流程一起进了版本库,跟着流程一起被交接给了下一个人。
密码该放在专门的凭据管理里。形态现在不少,密钥管理服务、配置中心的加密项、运维层面的环境变量加解密封装,长得不一样,要满足的性质是同一批。
- 流程文件里只有一个凭据的引用名,不是密码本身。
- 取密码的动作有权限控制,能拿到流程文件的人拿不到密码。
- 密码变更是可审计的,什么时候谁改了哪条凭据有记录。
- 流程跑在不同环境时用不同的凭据,开发环境那套不进生产。
最省事的做法是从操作系统层面借力。密码放系统密钥链或者受保护的环境变量,流程读的时候调用一次。好处是轮换这件事操作系统帮你做了,不用改流程文件。
还有一个经常被跳过的问题,密码轮换。人的密码九十天换一次,机器人的密码也得有周期。周期到的那天,流程会在半夜报错停掉,第二天早上才有人发现。如果凭据集中管理,改密码可以做到热更新,流程不受影响。如果密码写在代码里,轮换就意味着改代码、测试、发布,赶上排期很容易拖过去,拖着拖着就一直没改。
自动化凭证管理到位之后,密码本身不再是主要风险。剩下的风险在两处,一处是凭据能不能被拿到,另一处是拿到之后能做什么。轮换节奏管的是第一处的持续性,权限范围管的是第二处。
自动化凭证管理真正要解决的就是这几件事。存放位置、读取权限、变更留痕、轮换节奏。少一件,后面都要还回来。
把这几件事落到纸上,才算RPA账号密码管理有个交代。再往上走一步,机器人跑起来之后这套东西还能不能持续,取决于下面两节讲的内容。
账号活得比人久
机器人账号没有离职这回事,但流程会下线,人会走。最容易出现的状况是,一个流程上线之后没人再管它。账号还在那儿,权限还在那儿,甚至密码过期了都没人知道。
机器人账号需要有一份台账,写清这个账号属于哪条流程、谁负责、什么时候建的、权限范围是什么。这份台账和流程资产放在一起最好。流程本身的负责人是清楚的,账号的负责人跟着流程走,比单独维护一张表可靠。
人员变动时,这张台账就是交接单。开发做完了,人离职,流程还在跑。接手的人从台账里能查到该找哪个系统管理员、续期找谁、密码存在哪儿。没有这张台账,接手的人只能去翻聊天记录,或者干脆把这个流程下线算了。
另一个常见状况是流程下线了,账号没删。账号留在系统里,权限没收回,过一阵审计的时候就是一个解释不清的东西。流程下线时该一并做两件事,停掉定时任务,回收账号权限。这两件事放进同一个操作里做,别分开。
出事之后得查得到
权限给少了,流程跑不动,这事立刻会发现。权限给多了出事,问题在于事发之后能不能查清楚。人工操作做错了还能回忆,机器人做错了没人能回忆。
日志要记的是这几样。哪条流程在跑,用的是哪个账号,操作了哪个对象,进去的数和出来的数,关键步骤的截图或者页面快照。前面几样是结构化字段,截图是兜底,界面出问题时截图比日志有用。
流程日志和业务系统里的操作日志是两回事。业务系统记的是数据变了什么,流程日志记的是流程走到哪一步。机器人在界面上点了个按钮但没提交,业务日志里可能什么都没有,流程日志里能看出它点过。这两层要能对上,排查时才不至于卡在数据没变,那到底发生了什么。
留痕的主要用处是定位,不是追责。追责是结果,定位是过程。日志足够详细的时候,故障定位的时间差得很远。
还有一点,敏感数据不要进日志。流程要把客户身份证号填进去,日志里记个长度或者末四位就够排查了。全量落盘的日志文件最后会变成一个新的泄露口子。
有几类账号别给机器人
前面说的是怎么管,这一条是别碰。有些账号即使流程再需要,也不该给自动化用。
管理员账号不给。这个没什么可商量的。管理员能改别人的权限,能看到所有部门的数据,机器人拿到它等于把整个系统的门开着。
付款、出款、对外转账相关的账号不给。多一道人工确认不是为了效率,是为了在这类操作上留一个真人。
能改权限的账号不给。这条比管理员那条更容易被忽略。有些系统里改权限不是管理员专属,业务管理员也能给用户加角色。这种权限给到机器人,流程一旦被改写,权限就被悄悄提权了。
带二次验证的账号别指望能过。目标系统要求短信验证码、动态口令、图形验证码,机器人过不去。有些团队会去接打码平台,或者干脆把验证码环节改成人工点一次。这两种做法都有代价,前者是把安全问题外包出去,后者是人机混跑,流程的可用性取决于人当时在不在电脑前。真要跑,得先想清楚验证码这段怎么安排,别等上线前才发现卡住。
合规上有明确要求的系统,账号别给。这类系统通常本身就不允许非人工访问,自动化要走的话得先走一遍对方的合规流程。
把这几条排除掉,剩下的流程再谈账号怎么建、权限怎么配、密码存哪儿。反过来做的话,很容易在流程上线运行那一步被对方的安全或者 IT 部门挡回来,那时候改架构比现在改难得多。
延伸阅读