华为云 OBS 对象存储入门:权限配置、生命周期与成本优化的实战要点
前言
对象存储 OBS 是上云之后最早会用到、也最容易被用错的服务。用错的地方往往不在功能,而在权限和成本两个看不见的角落。这篇把桶创建、权限模型、生命周期规则和账单优化这几块串起来讲,都是在实际操作中验证过的结论。
一、桶创建的三个决定
创建桶时弹窗里只有几个选项,但每个选项都会影响后面很久:
- 区域(Region):桶一旦创建就不能跨区域迁移。选区域的原则是先看数据产生地和访问者位置,就近选择可以显著降低公网流出流量费用。
- 存储类别:标准存储适合频繁访问,低频访问适合每月只读几次,归档适合长期冷备。选错类别要么多花钱,要么取回时产生额外费用和等待时间。
- 桶策略起点:默认私有是正确的起点。为了“能直接访问图片”把桶设成公共读,是导致数据泄露最常见的路径。正确做法是用临时授权 URL 或 CDN 回源,而不是开放整个桶。
二、权限模型:IAM、桶策略、ACL 的分工
新人最容易搞混的就是这三层关系,可以简单理解为:
- IAM 策略:管“谁能调哪些 API”,作用于账号、用户、用户组维度。
- 桶策略:管“这个桶允许谁做什么”,粒度更细,可以针对其他账号授予权限。
- ACL:老机制,能力最弱,能用桶策略就不要用 ACL。
实际排查时,权限被拒绝要按“IAM 先、桶策略后”的顺序看:IAM 没授权,桶策略再宽也无效;IAM 给了权限,桶策略显式拒绝仍然生效。
下面这段是典型的跨账号只读授权,注意 Resource 要精确到对象路径,而不是整个桶:
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Principal": {"ID": ["domain/<other-account-id>"]},
"Action": ["GetObject"],
"Resource": ["obs://my-bucket/public/*"]
}
]
}
三、生命周期规则:省钱的真正大头
OBS 的存储费用和访问频次强相关,历史数据堆在一个桶里不做分层,成本会持续上涨。生命周期规则能自动完成转换:
- 上传 30 天后转为低频访问
- 上传 90 天后转为归档
- 上传 365 天后直接删除
一个容易忽略的点:低频访问和归档都有最短存储周期(低频 30 天、归档 90 天),提前删除会按照最短周期计费,反而不省钱。所以规则里的天数要大于等于最短周期。
四、四个高频问题
-
上传成功但访问 403:先看对象是不是私有,再看桶策略是否显式拒绝,最后检查请求是否带了正确的签名。
-
跨域请求被浏览器拦下:需要在桶上配置 CORS 规则,允许的来源不要写 *,生产环境应写具体域名。
-
大文件上传失败:分片上传的片大小和并发数需要调整,网络不稳定时建议减小分片体积。
-
账单比预估高很多:先看公网流出流量,再看请求次数。内网访问走终端节点可以免去流量费,这是最容易被忽略的一笔支出。
五、几点实践建议
- 桶名全局唯一且不可修改,命名时把业务和区域写进去,方便后面辨认。
- 开启版本控制可以防止误删覆盖,但会成倍占用存储,重要桶开、临时桶不开。
- 给运维脚本使用的账号只授最小权限,不要用主账号 AK/SK。
- 成本监控建议按桶维度打标签,月底一眼能看出哪个业务在烧钱。
小结
OBS 的功能本身不复杂,真正拉开差距的是权限设计是否克制、生命周期是否配好。把这两件事做对,既不会出事,也不会多花钱。
- 点赞
- 收藏
- 关注作者
评论(0)