无AWS账号上传文件至客户AWS S3 bucket的授权获取方法
最简便的授权方案:S3预签名上传URL
这是唯一适配你方无AWS账号、无注册AWS计划场景的低门槛方案,双方操作成本都极低。
方案逻辑
- 客户侧仅需用自身拥有目标S3桶写入权限的IAM身份,生成绑定了指定存储路径、有效期、上传规则(文件大小限制、类型限制)的预签名上传链接,直接把链接交付你方即可,不需要做任何复杂的跨账号权限配置,也不需要给你方分配任何IAM身份。
- 你方不需要注册AWS账号、不需要安装AWS专属工具、不需要登录AWS控制台,拿到链接后直接通过标准HTTP请求就能完成文件上传,用curl、Postman或者自己业务里的普通上传组件都能实现。
你方上传操作示例
用curl上传的话只需要执行一行命令:
curl -X PUT -T "本地待上传文件的完整路径" "客户提供的预签名上传URL"
如果是大文件分片上传场景,让客户生成对应分片上传的预签名URL集合即可,操作逻辑和普通HTTP分片上传没有区别。
注意事项
- 预签名URL自带有效期,单次上传场景让客户把有效期设为24-72小时足够使用;如果是长期周期性上传需求,可以让客户部署一个轻量接口,你方需要上传时动态申请有效期内的新链接即可,全程依然不需要接触AWS账号体系。
- 客户生成预签名URL时可以直接配置权限边界,比如限制只能上传到指定目录、单文件最大不超过多少GB、仅允许指定格式的文件上传,既不会出现权限溢出风险,也能避免误传文件。
不推荐其他方案的原因
- 跨账号IAM授权、STS临时授权这类方案都要求你方持有AWS账号来承接权限,完全不符合你方当前的前提条件,直接排除。
- 配置S3桶公网写入权限的安全风险极高,很容易被恶意扫描到后被灌入垃圾文件、产生巨额流量账单,没有正规运维团队会同意开放这类权限。
内容的提问来源于stack exchange,提问作者Anuska W
相关产品推荐
相关产品推荐

