签名 URL 是什么
签名 URL 在访问链接中带上签名与过期时间,让私有对象在限定时间内可被访问,无需把对象改成公共读。它把「一个对象的一次临时访问权」编码进链接本身,因此链接泄露就等于在这段时间内泄露了访问权,有效期与生成身份是设计时的两个关键点。
基本信息
| 适用平台 | 阿里云 OSS、腾讯云 COS、华为云 OBS,SDK 与 CLI 均提供生成方法 |
|---|---|
| 关键参数 | 过期时间(绝对时间戳或有效期秒数)、签名、访问身份标识 |
| 身份来源 | 长期密钥或临时凭证(STS),后者安全性更高 |
| 时钟依赖 | 生成方与校验方都依赖时钟,本机时间偏差会导致链接立刻失效 |
| 撤销能力 | 生成后一般不可单独撤销,只能靠短期有效期与密钥轮换控制 |
典型使用场景
- 前端直读:页面直接访问私有对象,不经过应用服务器中转
- 前端直传:客户端拿到上传用的签名链接,避免大文件过服务器
- 临时分享:给客户或同事一个限时下载地址
- 内嵌到工单与告警:在工单里附上可短期查看的截图或日志链接
- 定时任务:批处理任务用签名链接在窗口期内拉取对象
预签名 URL 形态
预签名 URL 形态
https://my-app-assets.oss-cn-hangzhou.aliyuncs.com/report.pdf
?Expires=1760000000 # 过期时间戳,过期后立即失效
&OSSAccessKeyId=<AKID 或临时凭证> # 生成该链接的身份
&Signature=<签名> # 由密钥与上述参数计算得出参数与控制点
| 控制点 | 含义 | 建议 |
|---|---|---|
| 有效期 | 链接可用的时间长度 | 按最小必要设置,下载类可更短 |
| 生成身份 | 用谁的密钥签名 | 优先临时凭证并限定权限 |
| 权限范围 | 链接只读还是可写 | 上传链接避免授予覆盖与删除权限 |
| 对象路径 | 链接指向的具体对象 | 避免用通配路径批量授权 |
生成方与校验方都依赖时钟:签名有效期受本机时间影响;短有效期配合临时密钥更安全。
签名 URL 一旦发出就无法单独撤销:需要立即失效时,只能靠轮换密钥、调整桶策略或依赖很短的过期时间兜底。