S3对象为何在未预期时可通过HTTP(非S3 API协议)访问?
问题解答
- S3的虚拟主机格式URL(
https://<bucket-name>.s3.<region>.amazonaws.com/<object-key>)是S3原生的对象访问端点,和静态网站托管的专属端点属于完全独立的体系。 - 对象设置
public-readACL后,权限覆盖范围包含:允许匿名用户通过S3 API调用GetObject,同时也允许通过上述原生虚拟主机URL直接发起HTTP/HTTPS请求获取对象——这是public-readACL的标准行为,与静态网站托管是否启用无关。 - 你的存储桶配置(对象所有权为写入者、ACLs启用)确保了对象级的
public-readACL可正常生效,未被存储桶层面的权限策略覆盖或失效。 - 关联的CloudFront分发因窄前缀路径与访问对象键不匹配,完全不会干预这次直接的S3端点访问。
内容的提问来源于stack exchange,提问作者Kevin Buchs
相关产品推荐
相关产品推荐

