安全工程
DevOps
Uber
Superuser Gateway: Uber 的特权命令执行保护系统
核心亮点
- 问题: 手动执行特权命令(如
rm -r、chmod -R)可能导致生产数据灾难 - 方案: 用 GitHub PR 流程替代直接执行,强制同行评审 + 自动验证
- 效果: 2025年底已完成全员迁移,已执行数百次安全操作
背景问题
- 无保护: 工程师直接持有超级用户凭证,无命令级 guardrail
- 审计困难: 日志记录的是超级用户主体,而非实际执行者
- 无同行评审: 单点错误无监督
架构组成
- superuser-cli: CLI 工具,工程师通过它提交命令
- Git 仓库: 存储命令请求,自动生成 PR
- CI 验证: 语法检查、权限验证、影响评估
- 后端服务: 执行已批准的命令,从不本地存储凭证
验证机制
- 语法验证: 检查命令格式是否合法
- 权限检查: 验证用户是否有权执行该操作
- 影响评估: 对删除操作,估算影响文件数量并自动评论到 PR
开发者体验
工程师仍然写相同的 HDFS 命令,但通过 superuser-cli cmd "命令" 提交。提交后生成 PR,评审方式与普通 GitHub PR 完全相同。
设计决策: 选择 Git-backed 流程而非数据库,是因为 Git 提供了成熟的评审体验、CI 集成和历史追溯能力。
扩展与未来
- 扩展到其他特权系统访问
- 更深入的静态分析,自动标记潜在错误
- AI 辅助评审,加速审查延迟