![]()
2006年,S3上线。同年,Twitter诞生,诺基亚还是手机霸主。十八年过去,Twitter换了三任老板,诺基亚卖掉了手机业务,而S3的存储桶命名规则——终于改了。
过去这十八年,"mybucket"一旦被占用,你就得在Terraform里塞随机后缀,或者把项目名加密再哈希,生产环境部署前还得祈祷别撞上"BucketAlreadyExists"。这不像技术问题,倒像早期互联网抢注域名的荒诞剧场:只不过这次对手不是黄牛,是全世界所有AWS用户。
![]()
新方案简单到近乎粗暴:桶名格式变成{前缀}-{账户ID}-{区域}-an。你的账户ID就是天然隔离符,"mybucket-123456789012-us-east-1-an"这个组合,别人想撞都撞不上。CloudFormation现在支持BucketNamePrefix属性,不用拼接伪参数,不用掷骰子求唯一性。安全团队还能用IAM条件键s3:x-amz-bucket-namespace强制全员使用新命名,审计时筛掉没带"-an"后缀的就是旧桶。
讽刺的是,Azure和Google Cloud从第一天就这么干——前者把存储账户限定在订阅级,后者限定在项目级。AWS坚持了十八年全局命名空间,现在才补上这课,而且还是可选功能,老桶不动。有Hacker News用户吐槽:"现在每次做AWS项目,所有桶名都得带一串账户ID,像给文件打条形码。"
![]()
目前35个区域已上线,免费,但中东两个区域还没排上。现有桶不能改名,新功能只适用于通用存储桶——表存储桶、目录桶、向量桶本来就在账户或区域级命名空间里,倒是提前交了卷。
一位Reddit用户的评论被官方文档引用:"全局命名空间构成安全风险,可能导致混淆代理攻击。"十八年,足够一个婴儿成年,足够AWS从创业公司长成云巨头,也足够让"BucketAlreadyExists"成为基础设施工程师的集体PTSD。现在,至少新桶不用再过这道鬼门关。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.