对象存储公开访问风险是什么
对象存储最常见的暴露是桶被设为公开读:数据文件、备份、日志可以被任何人直接下载,而且这类暴露不监听端口,常规端口扫描发现不了。风险来源通常是三种误配置——桶级读写权限设为公开、桶策略允许通配来源读取、CDN 或静态站点回源桶未做鉴权。自查要覆盖全部账号与全部地域的桶,同时检查生命周期与临时凭证的使用方式,避免公开链接长期有效。
基本信息
| 主要对象 | 对象存储桶与其中的数据、备份、日志与静态资源 |
|---|---|
| 高频问题 | 桶策略允许 * 读取;CDN 回源桶未做鉴权 |
| 隐蔽性 | 不监听端口,端口扫描与常规暴露核查看不到 |
| 收敛 | 默认私有 + 按需签名 URL/STS 临时凭证 |
| 监控 | 对桶策略变更开启操作审计与告警 |
| 覆盖范围 | 全部账号、全部地域、全部项目 |
典型场景
- 静态站点与图片资源托管,为方便访问把桶设为公开读
- 备份与导出文件直接上传到公开桶以便分享
- CDN 回源桶权限过大,回源地址泄露即可直接取数据
- 多账号环境中测试账号的桶残留用户数据
- 临时分享链接未设有效期,长期可访问
- 日志与归档桶策略过宽,包含敏感请求记录
自查命令(AWS S3 示例)
自查命令(AWS S3 示例)
# 列出所有桶
aws s3 ls
# 检查桶级公开访问阻断与 ACL
aws s3api get-public-access-block --bucket my-bucket
aws s3api get-bucket-acl --bucket my-bucket
# 阿里云 OSS / 腾讯云 COS:控制台『Bucket 列表 → 读写权限』逐桶核对
# 补充核对桶策略 JSON 中是否存在 Principal 为 * 且 Action 含读取的语句配置项与风险
| 配置项 | 风险 | 收敛口径 |
|---|---|---|
| 桶级读写权限 | 全网可读或可写 | 默认私有,按需授权 |
| 桶策略 | 通配来源可读 | 限定来源与操作范围 |
| 访问阻断设置 | 未开启,误配置无法兜底 | 开启公开访问阻断 |
| CDN 回源 | 回源地址可见即可取数据 | 回源鉴权或限定来源 |
| 临时链接有效期 | 链接长期有效 | 缩短有效期并按需签发 |
对象存储的公开访问会绕过 Web 防护直达数据:它比端口暴露更隐蔽,因为它不监听端口。
确认桶曾公开后,除了改权限还要评估数据是否已被批量获取:对象存储的访问日志是判断依据,缺失日志时应按已泄露处理并评估数据敏感性。