Kelsey Hightower 在 PlatformCon 2026 的演讲讲了一个贯穿职业生涯的原则:一次解决问题,把解法编码成可复用工件,之后不再重复解决。这个原则同样适用于安全验证。
他讲过一个 Jira 循环的故事:部署靠 Jira 工单驱动,工程师读工单、复制参数、跑命令、贴回输出、关单,每小时重复一次。他写了一个 Puppet manifest 监视工单、提取参数、执行部署、回贴结果并关单,循环跑完一次就结束了。Docker 和 Kubernetes 也是同样模式——不是让手动步骤变快,而是识别出重复中的抽象,让手动步骤变得不必要。
安全审计正陷入同样的陷阱。工程师每周打开每个 AWS 账户,检查 IAM 策略的通配符、过度授权的托管策略、无条件的跨账户信任,记录发现、跟踪修复,下周再来一遍。Reddit 上有人抱怨「做安全审计做到崩溃,每个开发都在角色上贴 s3:* 或 AdministratorAccess」。市场给出的答案是「用 AI 加速审计」——让 Claude 读 IAM 策略、让 agent 审 CloudFormation 模板。但 AI 读策略、推断风险、生成文字、消耗 token,下次扫描换个策略问同样的问题,一千个策略就是一千次 LLM 调用,每次发现同一类问题都花同样的成本,组织没有任何积累。
Stave 的做法是把抽象提取为「对配置快照求值的正式规范」。一个 control 就是一个编译成可复用工件的已解决问题,比如 CTL.IAM.ROLE.FULLACCESS.MANAGED.001 检查是否有 IAM 角色附加了完全访问的托管策略。它是 CEL 谓词,每次求值确定性输出,零 token、零 LLM 调用。3000 多个 control 就是 3000 多个只跑过一次就变成可复用工件的循环。成本对比很直观:AI agent 方案按 1000 账户、每账户 100 角色、每周扫描算,一年 520 万次 LLM 调用;Stave 是 3000 多个谓词对观测数据求值,毫秒级 CPU,零 token。
他的收尾是「确保训练你自己的模型」——指心智模型,从业者几十年从事故、审计、错误配置中积累的模式识别能力。control 目录就是这个模型的外化:每个 control 编码了一个从业者从事故或审计中学到的模式,通过 Red-Green 测试验证、HAZOP 校验,永久学习、不会遗忘。Kelsey 的模型存在一个人脑子里,42 岁退休就没了;目录是外化、形式化、可执行、可共享的。
他还用 deploy.sh 的故事说明知识载体的问题:SharePoint 里文档写的是 deploy.sh,实际能跑的是 this_one_works.sh,没人更新文档。Stave 用可执行规范替代文档——control 不是「可能被读、可能被遵守」的文档,而是每次对每个配置求值的谓词,知识即执行,错了由测试套件在依赖它之前拦住。
采用路径遵循 Unix 管道哲学:先学单条命令 iam-explain role.json,再用管道组合 iam-explain role.json --output obs | stave apply,最后为组织特定模式写自定义 control。iam-explain 解析 IAM 策略输出观测,stave apply 对观测求值,obs.v0.1 JSON 是两者之间的文本流,每个阶段都可检查。
Stave 是开源的 AWS 配置验证器,iam-explain 是带 Z3 形式验证的单策略 IAM 分析器。核心思路:把安全知识从文档和人工检查变成可执行、可组合、零边际成本的工件,一次解决,永久复用。
#开发者 #工具 #Stave #AWS #IAM #KelseyHightower #PlatformCon #安全审计 #云安全 #DevOps
@DevToolboxHub