
先聊个特别常见的做法:人人都是管理员
Cloak是本文的核心主题。上个月有个做跨境家居的客户拉着我看配置,说最近流量有点乱。我登进他们的谷歌斗篷实例,翻了下权限列表,好家伙,六个人挂着管理员,剩下几个也是编辑权限,只有俩实习生的账号是只读的。我问他们为啥这么分,对面回答得挺干脆:图省事呗,谁要动规则直接改,省得每次找人开权限。
团队小、人员不怎么流动的时候,这么干确实顺。可他们的真实情况是啥呢——代理团队在跑两个直客账户的日常投放,直客那边的运营隔三差五也要进来调落地页匹配规则,三方人全扎在同一个规则库里操作。撑了不到两个月,就出了回规则互相覆盖的事故。代理那边为了让一个新品类赶紧上线,把一条本来伺候直客主推产品的跳转规则条件给改宽了,直客运营第二天一看流量对不上,查了大半天才锁定是规则被动过。更头疼的是操作日志里只留了个账号名,而那个账号三个人共用。
共用实例本身没毛病,成本和管理上都说得通。真正的问题出在把"能登录"和"能改配置"当成了一码事。权限分级要解决的核心就一句话:不同角色的账户,能看到什么、能改什么、改完留下什么痕迹。这事儿拆成准备、执行、复盘三段来做,比一拍脑袋分角色稳当得多。
准备阶段:先把配置域和角色边界画出来
准备阶段要产出三样东西,少一样后面执行准变形。
头一样是账户清单。把所有要接进这个Cloak实例的账户列全,每个标上归属方(直客自有、代理代管、还是混合)、投放品类、日均点击量级、当前用的规则集编号。这一步的价值是把"谁在用"从记忆里拽出来变成能核对的事实。那个家居客户一开始只列了五个账户,后来对着Google Ads后台一个个点过去,发现还有俩测试账户挂在实例上,规则用的是两年前的老版本,早没人管了。
第二样是配置域清单。Cloak实例里的配置不是铁板一块,起码得拆成几个能独立授权的域:跳转规则集(管什么流量走什么目标页)、放行与拦截策略(管哪些请求能进正常页面)、指纹与请求特征采集参数、日志与审计配置、实例级参数(比如超时阈值、缓存策略)。每个域的风险等级不一样,跳转规则集和放行策略属于高敏感,日志配置算中敏感,实例级性能参数敏感度低些但影响面大。拆域就是为了让授权能精确到"能改规则但碰不了放行策略"这种颗粒度。
第三样是人员角色清单。按实际操作需求分,别按职级分。常见的就四类:实例管理员(管账户开通、权限分配、实例级参数)、规则编辑(能改跳转规则和放行策略,但动不了权限)、只读观察(能看配置和日志,改不了)、审计角色(能看操作日志和变更记录,业务配置不一定看)。代理团队和直客运营一般落在规则编辑或只读观察上,实例管理员最好就一到两个人,而且不掺和日常投放操作。
把配置域清单和角色清单摆成一个矩阵,行列交叉的地方标注允许的操作(读、写、审批)。这矩阵不用多花哨,一张表足够,要紧的是每个格子都得有明确结论,不能写"看情况"。你留个空白格试试,实操中它一准被临时授权填满,临时授权一多,分级就剩个名儿了。
矩阵里有两类边界情况得特别处理。一类是跨域操作,比如改跳转规则的时候顺带要调超时阈值,那这种操作是拆成两次授权分别做,还是允许规则编辑角色在限定范围内调阈值,准备阶段就得定死。另一类是代理和直客的交叉:代理代管的账户,代理能不能看到直客自有账户的规则配置?多数情况下答案应该是不能,但日志里的汇总指标可以共享。这些边界在矩阵里写明白,执行阶段就省得反复扯皮。
验收标准:三份清单可核对,矩阵无空白格
准备阶段收尾的验收很简单:账户清单跟后台账户列表对得上,配置域清单覆盖了实例里所有能改的参数,授权矩阵每个交叉格都有明确说法。再加一条,找两个实际使用者照着矩阵把他们日常操作走一遍,看有没有被卡住或者发现矩阵没覆盖到的操作。这一步能提前把大半设计漏洞给抖出来。
执行阶段:角色落地与操作约束
按矩阵开权限,同时设置操作约束
权限分级不只是开什么角色,操作约束得一起配。光给规则编辑角色开写权限、不设约束,等于把风险从"谁能改"挪到了"改的时候会不会出事"。
头一层约束是变更影响范围。规则编辑角色能改规则,但规则变更要是影响到其他账户共用的规则集,要么走审批,要么限制在账户专属的规则命名空间里。实现方式看实例架构,有的Cloak实例支持规则集按账户打标签隔离,有的得在规则命名上做前缀约定再加校验脚本。用哪种都行,关键是约束得落在配置层面,嘴上约定不算数。
第二层约束是高风险操作的二次确认。删规则、改放行策略的默认分支、调实例级超时阈值,这几类建议要求双人确认,或者至少留个强提示。这不叫不信任操作者,是这类操作一旦出错,排查成本远高于确认成本。
第三层约束是操作留痕的最低要求。每个写操作要记操作者、时间、变更前后的配置快照、变更原因(哪怕就一句简短备注)。日志配置域本身得有独立的写权限,规则编辑角色不能改日志配置,否则留痕就不可信了。
代理与直客共用实例时的命名空间划分
代理和直客共用一个实例,最容易出岔子的地方是规则命名和配置键名撞车。执行阶段得定一套命名空间约定,比如代理代管的账户规则统一加代理标识前缀,直客自有账户用直客标识前缀,共用规则单独放一个公共命名空间且只许实例管理员动。约定定完,拿一条校验脚本在每次配置提交时查命名空间合规性,不合规的直接拒掉。这条脚本比任何文档都顶用,文档没人看,脚本可是每次都跑。
命名空间划分还捎带一个好处:复盘阶段按命名空间统计变更频次和冲突次数,哪个角色、哪个账户的配置活跃度高,一眼就能看出来,下一轮权限调整就有依据了。
执行阶段验收分三步。先核对权限分配结果和授权矩阵对不对得上,用只读账号登录逐个域试读写,确认该拒的拒了、该放的放了。再验证操作约束:拿规则编辑角色去改日志配置、去跨命名空间改规则,看拦不拦。最后翻一遍操作留痕,随便挑一次最近的配置变更,看日志里操作者、时间、前后快照、原因齐不齐。三步都过,这阶段才算完。
复盘阶段:用审计日志验证分级是否真的有效
权限分级配完不能就撒手不管了。复盘阶段要从审计日志里读三个信号。
头一个信号是越权尝试次数。被拒绝的写操作会留记录,次数多少本身说明不了啥,但某个角色频繁触发拒绝,要么是矩阵设计没覆盖他的实际需求,要么这角色在做超出职责范围的事,两种情况都值得跟进。
第二个信号是配置冲突次数。两条规则条件重叠导致命中结果不确定、两个角色先后改同一配置项、代理规则和直客规则在公共命名空间外发生交叉,这些都算冲突。冲突次数往上走,说明命名空间划分或者审批流程得调了。
第三个信号是变更集中度。变更记录里要是百分之八九十的操作都来自同一个账号,那权限虽然分了,实际活儿全压在一两个人身上,分级没真正分散风险。那个家居客户复盘时就撞上了这个问题:代理团队三个人共用一个编辑账号,变更记录里全是这个账号,等于分级只分到了团队层面,没落到个人。
调整:从共用账号拆到个人账号,补审批环节
复盘发现的问题要落成具体的调整动作。共用账号的,拆成个人账号,每人按矩阵单独授权,操作留痕才追得到人。冲突频繁的配置域,要么收紧写权限,要么加审批环节。越权尝试集中在某类操作上的,回头查矩阵是不是漏了这类操作的正规授权路径。
调整完得重新跑一遍执行阶段的验收,确认新权限配置没引入新的卡点。权限分级是个迭代活儿,第一版矩阵几乎不可能一步到位,按复盘信号调个两三轮是常态。
实战复盘:一个多账户共用实例的调整过程
说回开头那个家居品类客户。背景约束是这样的:三个直客账户加两个代理代管账户,共用一套Cloak实例,服务器中等配置,日均总点击量一千二三的量级,规则集一共四十多条,代理和直客的规则混在同一个规则库里,没有命名空间约定。人员方面,直客自有运营两人,代理团队三人,外加一个外部优化顾问。
踩的坑有三层。最直接的是规则互相覆盖,代理改宽了一条规则的匹配条件,影响了直客主推产品的流量分配。第二层是操作日志追不到人,三个人共用一个编辑账号,出事后只能定位到账号,定位不到操作者。第三层是放行策略被临时改过没人知道,直客运营发现某类流量表现异常,查了两天才从日志里翻出一条两周前的放行策略变更,变更原因是代理那边为了测试新落地页临时放的,测完忘了改回去。
调整过程按三个阶段走。准备阶段先做了账户清单和配置域清单,把四十多条规则按账户归属重新打标签,划出代理命名空间、直客命名空间和公共命名空间,公共命名空间的写权限收回给实例管理员。执行阶段按授权矩阵重新分配权限:直客运营给规则编辑但限定在直客命名空间,代理团队同样限定在代理命名空间,实例管理员由客户方技术负责人一人担任,外部顾问只给只读加变更建议权限。同时加了命名空间校验脚本,跨命名空间提交直接拒绝,放行策略的修改要求实例管理员确认。复盘阶段头一个月就发现了变更集中度问题,代理团队三个人共用一个账号,拆成个人账号之后,第二个月的操作记录里越权尝试冒出来七八次,集中在跨命名空间改规则上,分析下来是代理有个新品类需要动公共命名空间的规则,矩阵里没对应的正规路径,后来补了一条"公共命名空间变更申请"的流程,越权尝试就降下去了。
最终状态是:五个账户的规则各自在命名空间内独立维护,公共规则变更走申请确认,操作日志能追到个人,放行策略的变更次数从原来一个月五六次降到一两次且都有记录。日均点击量级没变的情况下,规则冲突导致的流量异常从调整前的每月两三次降到基本没有。这套配置后来又跑了一个季度,复盘时唯一的调整是把只读观察角色扩了一个代理团队的质检岗,因为他需要看日志但不需要改配置。
授权矩阵的常见分法参考
各团队人员结构差别很大,矩阵不能照抄,但可以给个常见分法当起点。
实例管理员:账户开通、权限分配、实例级参数、公共命名空间规则。人数控制在一到两人,不参与日常投放操作。;规则编辑(按命名空间限定):本命名空间内的跳转规则和放行策略读写,不能改日志配置和权限配置。代理和直客各自独立授权。;只读观察:配置和日志的读权限,用于日常巡检和问题排查。代理团队的质检、直客的运营助理通常落在这里。;审计角色:操作日志和变更记录的读权限,业务配置的读权限按需给。这个角色适合由不直接参与投放的人担任。。
矩阵落地时有一条经验:宁可第一版收紧一点,后面按复盘信号放宽,也别一上来放太松。收紧了最多是有人来申请权限,放松了出了问题再收回,中间那段时间的风险可是实打实的。
几个容易漏掉的配置细节
日志配置的写权限要单独拎出来
日志配置域要是不单独授权,规则编辑角色能顺手把日志级别调低或者关掉某类记录,留痕就断了。日志配置的写权限建议只给实例管理员,规则编辑最多给读。这一条在多账户共用实例的场景下尤其要紧,操作者一多,谁动一下日志配置都影响所有人的留痕可信度。
测试账户和长期闲置账户要单独管
准备阶段的账户清单里经常混着测试账户和早没人用的老账户。这些账户往往还挂着老版本规则,权限也没人管。建议在矩阵里单列一类"受限账户",只给只读或者直接停用,规则集定期清理。那个家居客户的实例里就有两个这样的账户,其中一个的规则还在用两年前的放行条件,清理掉之后少了一个潜在的冲突源。
权限变更本身也要留痕
权限分配和调整的操作记录,跟配置变更记录同等重要。谁在什么时候给谁开了什么权限、为啥开,这些信息在复盘阶段是判断分级是否有效的直接依据。要是实例的权限管理模块本身不记这些,至少得在外部维护一份权限变更台账,按时间倒序,每次调整记一笔。
收束:分级的目的是让变更可预期
广告代理和直客账户共用Cloak实例,权限分级做到位之后,最大的变化不在安全层面,而在变更变得可预期。谁改了什么、为什么改、影响范围多大,操作发生的时候就有记录,出问题的时候不用靠回忆和猜测去还原。按准备、执行、复盘三个阶段走,每个阶段有明确的输入和验收标准,矩阵和命名空间约定落地之后,日常的权限调整就变成按信号微调,而不是每次出事之后重新分一遍权限。
如果只记一件事:权限分级不是把管理员列表缩短就完事,配置域拆分、命名空间划分、操作约束和审计留痕这四件事得一起做,缺一个,分级就会在实际操作中被绕过去。