使用源访问身份(OAI)限制对 Amazon S3 内容的访问

2 篇文章 0 订阅
1 篇文章 2 订阅

使用源访问身份限制对 Amazon S3 内容的访问

很多互联网公司,会选择将图片放在S3上,并利用CloudFront对存储桶的内容进行加速分发,这样用户就可以通过S3访问图片,也可以通过CloudFront的域名来访问图片,但是,公司希望能够限制对S3内容的访问,只希望用户通过CloudFront的域名来访问,从而达到加速的效果。可以通过下面几个步骤达到这一需求。

  1. 创建cloudfront加速的源S3桶
  2. 创建一个称为源访问身份 (OAI) 的特殊 CloudFront 用户 ,可在创建CloudFront分发的时候创建
  3. 配置 S3 存储桶权限,以便 CloudFront 能够使用 OAI 访问存储桶中的文件并将这些文件提供给您的用户

OAI创建和自动配置S3存储桶权限(配置Cloudfront时创建)

  • 限制存储桶访问:选择(如果您希望要求用户始终使用 CloudFront URL 而非 Amazon S3 URL 访问您的 Amazon S3 内容,请单击“是”。当您使用签名的 URL 或签名的 Cookies 来限制对您的内容的访问时,这会很有用。)
  • 源访问身份(OAI):选择创建新身份,并选择更新存储桶策略(否则需要自己去S3修改存储桶策略)

在这里插入图片描述

效果展示

  • 通过S3 URL访问对象

在这里插入图片描述

  • 通过CloudFront URL访问对象

在这里插入图片描述

这样就可以达到我们想要的效果了,也就是S3 URL访问不到,只能通过CloudFront URL 访问。

注意事项

在创建 Amazon S3 存储桶之后,存储桶名称最多需要 24 小时才能传播到所有 AWS 区域。在此期间,向与 S3 存储桶不在同一个区域中的区域终端节点发送请求时,您可能会收到“307 临时重定向”响应。

  • 例如,如果您创建一个新的存储桶并立即向该存储桶发出请求,则可能会收到临时重定向,具体取决于存储桶的位置限制。如果您在美国东部(弗吉尼亚北部)AWS地区创建了存储桶,则不会看到重定向,因为这也是默认的AmazonS3终端节点。
  • 但是,如果在其他任何区域中创建了存储桶,则在传播存储桶的DNS条目时,对存储桶的所有请求都会转到默认端点。默认终结点使用HTTP302响应将请求重定向到正确的终结点。临时重定向包含指向正确工具的URI,您可以使用该URI立即重新发送请求。

解决方法:如果您使用 Amazon CloudFront 分配功能并以 Amazon S3 为源,CloudFront 将请求转发到默认 S3 终端节点 (s3.amazonaws.com),即位于 us-east-1 区域。如果您必须在创建存储桶的前 24 个小时内访问 Amazon S3,可以更改分配的原始域名以包括存储桶的区域终端节点。例如,如果存储桶位于 us-west-2,您可以将原始域名从 bucketname.s3.amazonaws.com 更改为 bucketname.s3-us-west-2.amazonaws.com。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值