SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

访问控制和最小权限原则,一个是管门的锁,一个是告诉你锁几把钥匙

访问控制是一套机制——账号、角色、权限、认证——用来决定谁可以访问什么资源。最小权限原则是一条安全设计理念,要求每个主体只拥有完成其工作所必需的最小权限集合。访问控制没有最小权限原则仍然可以运行——门照样能锁——但锁完会发现人人都有钥匙、每把钥匙都能开所有的门。

寓言

钱庄的铁库有二十四把锁,掌门人只分出去六把钥匙

淮州通宝钱庄有一座地下铁库,外门三道,内门一道,每道门配一把不同的锁。钱庄雇了二十四名伙计,每个人手里都有一串钥匙——因为初建时管事的说:为了方便,统一配一把万能钥匙,能进三道外门和一道内门。半年下来,这二十四把万能钥匙配上二十四个人,铁库和没锁差不多。

新上任的大掌柜顾叔接手后做的第一件事就是收钥匙。他把所有旧锁拆了,换了四套不同制式的锁具。然后他花了一个月时间,画了一份「权限登记册」。账房的小陈只能开第一道外门拿账本,铸银师傅老赵能进第一道和第二道外门,但绝对不能进内门。搬运工进第一道门要由管事陪同。最后能进内门的只有顾叔自己和一个副掌柜。

伙计们集体抗议:以前一把钥匙哪都能去,现在走个路都要找人开门,干活慢了。顾叔搬出一桶桐油和一叠文书,把二十四把旧钥匙全收上来泡在油里作为废铁封存。然后他打开登记册说:你们之前的权利不是「方便」,是「漏洞」。咱们这间钱庄如果被一伙贼人绑了任何一个人拿到钥匙,全库清空——因为每个人手上的钥匙都和库管的一模一样。

顾叔不是在说「不要锁」——他是在锁的基础上重新定义谁有钥匙、有什么钥匙、为什么可以有。他的做法里没有否定门锁的价值,四道门的锁依然完好;但他把钥匙的分发从「人人一把万能」改成了「每个人正好够用」。

有一个细节顾叔特别坚持:登记册上的权限不能写「可以进库房」,必须写「第一道外门:每周一到周五辰时至酉时,取账本」。时间、空间、目的三要素缺一不可。账房要拿账本,就不该顺手能碰银箱;搬运工要搬木箱,就不该知道内门钥匙放在哪里。

半年后钱庄遭了一次窃,贼人从后院翻墙但只进了第一道外门,因为没有第二道门的钥匙,被巡查队当场拿住。如果还是旧制那把万能钥匙,四道门对于这个贼人不过是多走几步路。这件事传出去后,周边三家钱庄都派人来学顾叔的权限登记册,但它说到底并非在学做锁——锁的技术一直在进步——,关键在于在学发钥匙的原则。

顾叔后来查登记册时,问的从来不是「门锁结实吗」,而是「为什么这把钥匙给了这个人」。锁管的是能不能进,发钥匙的原则管的是该不该进。门锁再好,如果人人都有万能钥匙,铁库还是没有边界。

访问控制

一套身份认证、授权决策和访问执行的机制组合,包括用户管理、角色定义、权限分配和策略执行。它定义了「门在哪里、锁什么样」,是执行层面。

最小权限原则

一条安全设计原则,要求每个主体仅获得完成任务所必需的最小权限集合。并非禁止给权限,关键在于要求「为什么需要这个权限」的回答每次都站得住。它是设计原则,不是具体工具。

故事对应

  • 二十四把万能钥匙:有访问控制机制但权限完全失控——锁还在,钥匙泛滥
  • 顾叔收钥匙换锁:实施最小权限原则——不否定锁的价值,而是重新分配钥匙
  • 权限登记册的三要素(时间、空间、目的):现代细粒度权限的设计原型
  • 伙计抗议干活慢:安全与便利的永恒张力,最小权限通常增加摩擦
  • 贼人只进第一道门就被拿住:最小权限在真实攻击中的分层防御效果
  • 周边钱庄来学发钥匙原则:最小权限是设计方法,不是一套锁具产品
  • IAM 角色配置灾难题:有访问控制但违反最小权限的经典错误

落到云平台权限审计和角色设计

做 IAM 权限审计时,不要只看角色绑定了哪些策略——查每个用户的策略并集,问一句:「这个权限他实际用吗?」如果一个设计师拥有 SQL 控制台权限但从来不登录,不管策略本身写得多么规范,这条授权已经违反了最小权限。新建角色时从零权限开始,加一个资源访问就写一段理由,不要从一个宽泛的默认模板往下删——删到你忘了删掉的那条。每次员工转岗或离职时,必须做一次权限收敛审计,把历史累积的多余授权一次性回收。