当前位置: 首页 > news >正文

二十年 AWS 之旅:从安全质疑到 FreeBSD 运行突破

【导语:科林·珀西瓦尔自 2006 年创建首个 AWS 账户后,在二十年里持续参与 AWS 服务的使用与反馈,从早期指出 AWS 安全问题,到推动 FreeBSD 在 EC2 上运行,见证了 AWS 服务的不断发展与完善。】


早期 AWS 使用与安全质疑

2006 年 4 月 10 日,科林·珀西瓦尔创建了自己的首个 AWS 账户,最初是被 Amazon S3 吸引。但早期使用时发现,AWS 请求虽有 API 密钥签名保障身份验证和完整性,但响应却无签名,且当时常见通过 HTTP 发起请求,存在响应被篡改风险,他认为添加响应签名是不错的做法。

2007 年,他对 Amazon EC2 上运行 FreeBSD 产生兴趣,还向亚马逊表达了对 Xen 安全性的担忧,并推荐了塔维斯·奥尔曼迪进行安全审计。此外,他提出 EC2 实例以只读根磁盘启动并在重启时清除内存状态的需求,18 年后 EC2 实例证明功能推出,他十分兴奋。

FreeBSD 在 EC2 运行的艰难历程

2007 年底,科林抱怨了 AWS 最终一致性问题,并主张采用最终已知一致性模型。2008 年初,基普·梅西让 FreeBSD 在支持 PAE 的 Xen 上运行起来,但打包后无法在 EC2 启动,这是因为 EC2 使用的 Xen 3.0 存在 bug,不支持递归页表,而升级到 Xen 3.1 会破坏现有 AMI,亚马逊为支持现有客户选择继续使用 Xen 3.0。

2008 年 4 月,Tarsnap 进入私有测试阶段,他在使用 Amazon SimpleDB 时发现签名方案规范化存在冲突问题,虽问题在 12 月才修复,但亚马逊处理过程中与他保持联系并积极改进。同年 6 月,他还发现 NextToken 值存在安全设计问题,但报告后未得到有效回应。

NetBSD 替代与 FreeBSD 运行突破

到 2010 年初,因 EC2 仍使用古老版本的 Xen,科林对让 FreeBSD 运行感到绝望,转向 NetBSD,仅用一周就创建了可运行的 NetBSD AMI。同年 7 月,亚马逊推出“集群计算”实例支持 HVM,但 FreeBSD 仍存在驱动程序问题。

真正的突破出现在 2010 年 9 月,新的 `t1.micro` 实例类型运行的 Xen 3.4.2 没有导致 FreeBSD 无法运行的 bug,11 月中旬他能通过 SSH 连接到 FreeBSD/EC2 的 `t1.micro` 实例,并在 12 月宣布 FreeBSD 可在该实例上使用。此后,FreeBSD 在 EC2 上的使用逐渐拓展。

后续经历与建议影响

2012 年,科林在排查 S3 请求错误时,发现是“卡住的位”导致问题,通过 traceroute 和发送 ping 包确定故障路由器,亚马逊最终确认并更换了硬件。同年的 re:Invent 大会上,他与 EC2 首席工程师交流,谈到利用超线程技术窃取 RSA 密钥工作,建议不要在同一核心的两个线程上同时运行两个 EC2 实例,多年后有人称此建议产生了影响。

编辑观点:科林·珀西瓦尔二十年的 AWS 经历,展现了他对技术的敏锐洞察力和执着精神。他不断发现问题并推动改进,为 AWS 安全和功能完善贡献颇多,其经历也反映了云计算技术不断发展和解决问题的过程。

http://www.cnnetsun.cn/news/1837679.html

相关文章:

  • Rust 生命周期与所有权结合示例
  • 软件发布计划管理中的版本安排者
  • 数据团队该醒醒了:AI智能体不是你的下一个仪表盘下
  • 2026年04月11日最热门的开源项目(Github)
  • 龙芯k - 走马观碑组ST驱动移植纳
  • EF Core 原生 SQL 实战:FromSql、SqlQuery 与对象映射边界断
  • SQL入门:以图书馆类比讲透数据操作,小白从零起步轻松掌握
  • Python 3.8+ 在Windows X64系统上的高效安装指南
  • m3pi_pops:STM32F4裸机固件库修复与巡线校准实践
  • LTspice波形查看器10个隐藏技巧:从批量添加信号到浮动窗口设置
  • Python的@property装饰器与描述符协议在计算属性中的缓存设计
  • Python FastAPI 高并发项目结构
  • 避坑指南:YooAsset整合HybridCLR时,如何正确处理AOT与热更DLL的打包与加载?
  • 从DeepSeek宕机到高并发救星:用vLLM的PagedAttention和Continuous Batching搭建你的大模型API服务
  • 5分钟掌握Windows任务栏美化:TranslucentTB终极透明化指南
  • 一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)妥
  • CMIP6全球数据集(1979-2100):历史与未来气候情景(SSP245/SSP585)的动态降尺度应用
  • 【限时解锁】奇点大会AI原生图像识别白皮书(V2.3.1内部修订版):含19个真实产线故障归因案例与实时修复SOP清单
  • RobotDuLAB:面向K-12教育的Arduino机器人教学库设计
  • 嵌入式SD卡底层驱动:SDHCFileSystem原理与实战
  • 在i.MX6ULL开发板上,用Buildroot配置Qt5+tslib触摸屏的完整环境搭建笔记
  • 杰理之test 板级下串口升级失败问题【篇】
  • MySQL进阶基础:索引、视图、存储过程与常用函数
  • 《为什么你的AI系统一到现实世界就失效?》——从“数据驱动幻觉”到“空间智能落地”的断层解析
  • SDMatte赋能微信小程序开发:在线证件照制作工具实战
  • SparkFun TB6612 Arduino驱动库深度解析与工程实践
  • 无感FOC驱动新突破:脉冲注入与电感法实现媲美有霍尔的静音启动与力矩保持
  • 终结Agentic RAG乱象!首篇权威SoK论文:从定义、架构到落地的全体系指南
  • 不用装软件!这款MicroPython浏览器 IDE :让你在手机上也能调试树莓派 Pico拐
  • 用STM32和R60ABD1毫米波雷达DIY一个非接触式睡眠监测仪(附完整代码和PCB)