签名 URL 是什么
签名 URL 给未登录用户一个带时效的访问凭证,用于私有对象的限时下载或上传:链接过期自动失效,全程不暴露账号密钥。它是既要保持私有、又要能对外分享这类需求的标准解法。
基本信息
| 原理 | 用密钥对 URL 与过期时间签名,服务端校验签名 |
|---|---|
| 典型场景 | 报表限时下载、前端直传凭证、第三方取数 |
| 生成方式 | 各语言 SDK 的签名接口,或命令行的 sign 子命令 |
| 有效期 | 按需设置,通常分钟到小时级,越短越安全 |
| 权限 | 签名继承签名者的权限范围,用受限子账号更稳妥 |
| 审计 | 结合访问日志跟踪下载来源与频次 |
使用要点
| 要点 | 说明 | 风险 |
|---|---|---|
| 有效期 | 分钟到小时级 | 设得过长等于长期公开 |
| 签名者权限 | 继承签名者的权限范围 | 用主账号签名会放大风险 |
| 上传类签名 | 需限制路径与文件大小 | 未限制可被塞入文件 |
| 时间同步 | 依赖服务端时间 | 时间偏差导致签名立即失效 |
| 访问日志 | 记录来源与频次 | 链接泄露后无从追查 |
生成签名 URL
生成签名 URL
ossutil sign oss://my-bucket/report/2026-10.pdf --timeout 3600
# 输出一条在设定时长内有效的 HTTPS 链接,过期后自动失效典型使用场景
- 把私有桶里的报表或导出文件发给外部人员限时下载
- 前端直传大文件,服务端只负责签发上传凭证
- 内部系统之间临时取数,避免共享长期凭据
- 把链接放进通知或工单,并设置合理有效期
签名 URL 本身就是授权凭证:转发即等于授权外泄,对敏感文件应设置短有效期并记录访问日志。
上传类签名要限制路径与文件大小:不加限制时,拿到链接的人可以往桶里塞入任意内容。
有效期写死很长是常见错误:链接一旦流出就是长期可访问,短期调试用的凭证不要复用到生产。