对象存储的风险在哪
对象存储的安全问题集中在两处:权限过宽与密钥泄露。桶一旦可公共读写,任何人都能上传或下载;主账号密钥硬编码在代码或镜像里,泄露等于交出整个账号。加固思路是默认私有、最小权限、全程可审计。
加固清单
- 权限:桶默认私有,公共读需审批,严禁公共读写
- 账号:程序使用子账号与最小权限策略,禁用主账号密钥
- 加密:敏感数据开启服务端加密,密钥可托管在 KMS
- 审计:开启访问日志与操作审计,监控异常的读写峰值
- 防护:限制 Referer、强制 HTTPS、设置跨域白名单
- 恢复:开启版本控制与跨区域复制,并定期做恢复演练
- 治理:用生命周期规则清理过期数据与历史版本
基本信息
| 首要风险 | 桶权限设为公共读写,数据可被任意上传下载 |
|---|---|
| 次要风险 | 主账号密钥写进代码或镜像,泄露面极大 |
| 检测手段 | 查桶 ACL、看访问日志与异常流量告警 |
| 加固成本 | 改用子账号加策略的改造成本低、收益最大 |
| 常见残留 | 调试期临时开放的公共读忘记关闭 |
快速核查桶权限
快速核查桶权限
ossutil ls oss://my-bucket/ --acl # 查看桶与对象的访问权限
ossutil ls oss://my-bucket/ --meta # 查看对象元信息与加密状态
# 结合访问日志与流量告警,确认是否存在异常下载把临时开放的公共读忘在线上是最常见的泄露来源,把桶权限核查做成例行任务,比事后追责有效得多。
程序访问对象存储应使用范围受限的子账号密钥,并优先使用临时凭证,避免长期密钥落到代码仓库与镜像层里。
只做权限加固不做日志审计,发生泄露也无从追溯:访问日志与异常流量告警要同时开启,缺一都会留下盲区。