You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭AWS S3存储桶公共访问后,外部主机如何通过S3 URL读取对象?

无需开启S3公共访问的解决方案

不用开启公共访问也能让外部主机通过S3 URL读取对象,以下是几种可行方案:

1. 预签名URL(Presigned URL)

这是最常用的方案,通过AWS SDK或CLI生成带有有效期的临时访问URL,外部主机可直接将该URL用于img标签等场景:

<img src="生成的预签名URL" />

预签名URL的有效期可自定义(比如1小时、1天),过期后自动失效,既能满足外部访问需求,又能保持S3桶的私有性,安全性更高。

2. CloudFront Origin Access Control(OAC)

将S3配置为CloudFront的源,启用OAC限制仅CloudFront能访问S3桶,然后使用CloudFront分配的域名对外提供对象访问:

<img src="https://你的CloudFront域名/目标对象路径" />

这种方式不仅能实现私有S3对象的外部访问,还能借助CloudFront的缓存能力提升访问速度,同时可结合CloudFront签名URL/签名Cookie进一步控制访问权限。

3. 临时IAM凭证(适用于非前端场景)

如果外部主机是后端服务,可通过获取临时IAM凭证,在请求中携带凭证信息访问S3。但该方式无法直接用于前端img标签(浏览器不会自动添加凭证请求头),仅适合服务端调用场景。

综上,完全不需要开启S3的公共访问权限,通过预签名URL或CloudFront OAC即可满足外部主机读取S3对象的需求,同时保障存储资源的安全性。

内容的提问来源于stack exchange,提问作者Alex. A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:35:16