← 中文资源

简体中文版本

爆炸半径

爆炸半径衡量一次故障或失陷能造成多大破坏,以受影响的租户、数据、凭据、区域或服务来度量。

阅读英文原文

破坏范围,而非概率

风险由可能性和影响组成。爆炸半径聚焦影响侧:这个组件故障或被攻破时,还有什么会一起损坏?共享数据库凭据、全局配置推送和单租户集群对这个问题给出不同答案,即使它们的故障概率相近。

工作机制

边界创造爆炸半径。按环境划分云账号或项目,限制凭据可达范围。单元化把租户分到独立栈,一次错误发布只影响一个单元。隔舱隔离线程池、连接池和队列,让饱和留在本地。短期、窄范围的凭据让泄露的令牌在能被复用前就过期。

遏制还需要运营设计:分阶段发布、功能开关,以及在不重新部署全部系统的情况下禁用某区域或租户。静态稳定性让每个区域都能独立服务,避免局部故障通过共享依赖级联。

何时使用与取舍

增加共享基础设施、扩大凭据范围或设计多租户部署时都应考虑。它也是事件响应的好问题:拥有这份访问权限的攻击者最坏能触及什么?

更小的爆炸半径意味着更多运维单元:更多账号、集群、密钥和仪表盘。隔离提高成本与复杂度,过度隔离又让一致性变难。共享本身并非错误,但决策应显式,并配合按租户加密和强审计等补偿控制。

示例与常见误解

某服务的 SQL 注入利用了可访问所有租户 schema 的共享数据库角色,爆炸半径是整个平台。按服务缩小角色并启用行级安全后,同一个缺陷只影响一个租户的数据。

常见误解是冗余等于遏制。把被攻破的工件或凭据复制到所有区域,只会扩大而不是缩小爆炸半径。相关概念:隔舱隔离、租户隔离、攻击面。