寓言
一把能开的锁和一个不敢开的箱子
老孙在一家银行科技部负责 AI 运维助手。系统上线前,安全团队给助手配了完整的权限:能读服务器日志、能查配置变更记录、能重启非核心服务。权限清单列了一百二十多项,每一项都精确到具体的 API 端点。
上线第一周,助手表现保守到了让人着急的地步。数据库连接池快满了,助手看得到这个告警,但不做任何操作就转给了人工值班。值班工程师半夜被叫起来,看了一眼监控,手动重启了一个非核心连接池——这个操作助手明明有权限做。老孙查了助手的决策日志,发现助手判断这个操作超过了它的「独立决策范围」。
老孙意识到问题不在权限层,而在职权层。权限回答的是「你能调哪些接口」,职权回答的是「哪些操作你可以不经过人类批准就自己决定做」。连接池重启在权限清单里是允许的,但在助手的职权配置文件里被标记为「高风险操作,需要人工确认」。
老孙和安全团队重新梳理了职权配置。他们把一百二十多项权限分了三档:自动执行档,包括日志轮转、缓存清理、基础健康检查;建议档,包括参数调优、资源扩容建议——助手提出建议,人类确认后执行;禁止档,包括涉及交易数据的任何操作,即便技术上有权限也不允许自主决策。
调整之后,助手的独立运维覆盖度从原来的百分之十七涨到了百分之六十三。数据库连接池满了,助手自动检测、判断属于自动执行档、直接重启——值班工程师的晚上终于睡完整了。但修改交易路由配置仍然需要人类确认,不管助手的权限有多大。
安全审计时,审计师问老孙:你们怎么防止助手越权操作?老孙展示了双层控制图:外层是权限边界,API 级别的访问控制,管的是能不能连上。内层是职权边界,决策级别的自主范围,管的是能不能自己做主。权限是锁匠配的钥匙,职权是守门人的判断标准。
有一次,一个漏洞扫描器误判助手的某次操作为异常行为,报了安全告警。老孙排查后发现:助手的权限边界和职权边界都没被突破——它在职权范围内执行了一个权限允许的操作,只是操作模式跟以往不同。审计团队据此加了一条新规则:权限日志和职权决策日志分开存,交叉对比时能更快定位是技术违规还是决策异常。
年底总结,老孙写了一句话贴在工位上:「钥匙开了门,不代表你该进去。」权限是钥匙,职权是进门的判断。钥匙少配了影响效率,进门判断没做好影响安全。两套规则,两本台账。