本节摘要:零信任时代,身份是最小的边界。本节讲云上身份体系的四层结构——人、服务、联邦、特权——再用策略语言把最小权限写成机器可执行的代码,最后用一条认证链的时序推演,把 MFA、临时凭据、条件访问串成完整防线。
第一章的威胁底图说:今天多数入侵的入口不是砸门而是拿钥匙。这句话的另一面是防御重心的事实转移——边界消失后,"这个请求是谁发的、它有没有资格做这件事"成了每个控制点的必答题。身份与访问管理(IAM)就是云上回答这道题的中枢:所有管理操作、所有服务间调用、所有数据访问,最终都收敛为一次身份判定。
云上身份有四种类型,权限特征各不同,混用是事故之源。人的身份(长昭身份):员工账号,权限随岗位走,必须有 MFA 与离职回收流程。服务身份(应用身份):程序用的身份,凭据是密钥或角色映射,最易被攻击者从代码与配置里偷走,所以要尽量免密钥化。联邦身份:把企业内已有的目录与单点登录接入云,员工用一套账号新旧系统通用,好处是入离职流程天然同步。特权身份:管理类身份,需要单独的管理机制——常驻特权是最大的单点风险,取而代之的是"用时激活、限期自动收回"的临时提权。
考试场景题里辨身份类型的技巧:题干给一个"谁在操作",先判人还是程序,再判权限是常驻还是临时——四个格子一对号,选项往往自动浮现。
最小权限在 IAM 里不是口号,是一门用策略语言书写的工程。策略三要素:谁(身份)、对什么资源、能做什么动作,再叠加条件(来源网络、时间、是否 MFA)。写策略的功夫在于"拒绝默认、显式最小":先不授权任何东西,再按真实需要逐条加。
# 示例:一个订单导出服务的最小权限策略(策略语言风格) 允许 动作[对象存储:GetObject, 对象存储:ListBucket] 作用于 资源[桶:order-exports 及其对象] 条件 来源网络 属于 [应用区网段] # 同一需求的反面教材(宽权限): 允许 动作[对象存储:全部动作] 作用于 资源[全部桶及对象] 条件 无 # 差别在哪:反面教材在应用被攻破时, # 攻击者可枚举、读取、覆盖、删除全部桶,含备份桶; # 最小权限版只能读导出桶,且仅当请求来自应用区网段。
策略治理有三个配套机制,缺一则策略质量必然劣化。权限边界:给身份设一个"天花板"策略,即使有人误授宽权限也越不过边界。权限分析与回收:定期扫"授权了但从未使用"的权限并回收——权限的自然趋势是只增不减,靠清理对抗熵增。变更审查:策略变更走代码仓库评审(又一次与 2.4 的 IaC 思路合流),变更历史可追溯。
把本节要素串成一次真实访问。场景:工程师小李通过控制台查看生产数据库的健康指标。整条链的时序如下:
这条链有四个可圈可点的安全设计。MFA 挡住了口令泄露的入口;联邦凭证让云侧不存口令、人走权限消;角色策略限定"只读生产指标"而不是"进生产逛逛";短时效凭证到期自动失效,把"忘了回收"这类事故从根上取消。每一步在审计服务里都有记录,事后能完整回答"谁在何时看了什么"。
变式推演两则。变式一:把小李换成订单导出服务,链路变为服务身份用角色映射拿临时凭据,无人工环节,MFA 不适用,取而代之的是网络条件与凭据短时效。变式二:攻击者偷到了小李的口令——MFA 一道关把他拦在门外;假如他连动态验证码也钓到了,条件访问还会核验设备与来源的异常,而审计里一次从未出现过的异地登录会直接触发告警。防御纵深在身份链上的含义就是:每一环被攻破,下一环还在。
给一套 IAM 的周检清单:扫从未使用的权限并出回收单;核对特权操作是否全部走临时提权;核对全部人员身份的 MFA 开通率(目标百分之百);扫长期未轮换的静态密钥并推动改角色映射;抽查最近一周的管理操作日志是否完整可读。五条都能自动化,事实上它们就是第六章配置合规检查的成员。
到这里,平台域的底座、通道、中枢三层立完。下一节处理一个当代架构绕不开的现实问题:当这套三层防线需要复制到第二家云厂商,或者一半留在自建机房时,账要怎么算。
身份域的误区高度集中,用一张对照表收拢,检查自家环境时逐行过。
| 误区 | 现场症状 | 修法 |
|---|---|---|
| 根账号日常使用 | 顶层账号出现在日常操作日志里 | 根账号锁进保险流程,日常用管理身份 |
| 共享账号 | 用户名是团队的邮箱 | 一人一号,权限差异交给角色而非共享 |
| 静态密钥满天飞 | 代码、配置、工单里翻得到密钥 | 改角色映射与临时凭据,密钥只作兜底 |
| MFA 只管人不管特权 | 高权操作无第二因子 | 特权操作强制第二因子,豁免要有期限 |
| 权限只增不减 | 离职半年仍有效;从未用过的授权一长串 | 权限分析季度清理,入职离职一条流程 |
表中最隐蔽的是"静态密钥满天飞":每把静态密钥都是一条不依赖网络位置的登录通道,钓鱼、代码仓库泄露、离职拷贝都能带走它。治理的终点是把静态密钥压缩到"实在无法改造成角色映射"的少数场景,并对存量做季度清点——密钥数量本身就是身份治理成熟度的反指标。
身份域与全册的接口值得点一遍,这是场景题与实战的共同主线。对数据域:密钥服务的调用身份就是数据安全的总闸(3.3);对网络域:分段规则之外的第二重判定靠身份策略(4.2 的微分段常与身份绑定);对应用域:服务间认证是应用域新边界的地基(5.3 的服务身份);对运营域:身份异常是最高价值的告警源(6.1 的行为基线首选特权账号)。考场上遇到跨域场景题,从身份切一刀往往能把局面切开——它是所有域的公共组件。
策略粒度是身份域最常被问到的落地问题,给一条可操作的判断线:粒度细到"策略语句能对应一条业务规则"为止。比如"订单导出服务只能读导出桶、仅限应用区网段、仅限工作时间"——三个条件各对应一条可陈述的业务约束,这是恰到好处的粒度;再细到"只能读对象名以 2026 开头的对象",策略开始编码业务细节,业务一变策略就碎。反过来,"读写全部桶"式的大白条连一条业务规则都对应不上,是纯粹的懒惰授权。粒度的试金石是变更频率:策略跟着业务规则变(低频)是健康的,跟着每一次业务操作变(高频)说明粒度过细,该上移一层用标签或前缀表达。
多云与混合云的选型推演,见下一节。