Session 有没有一种方法可以直接向用户提供s3文件,而url不能共享?

Session 有没有一种方法可以直接向用户提供s3文件,而url不能共享?,session,authentication,amazon-s3,amazon-web-services,amazon,Session,Authentication,Amazon S3,Amazon Web Services,Amazon,我正在S3上为一个网站存储一些文件。目前,当用户需要一个文件时,我会创建一个签名url(查询字符串身份验证),该url将过期并发送到他们的浏览器。但是,他们可以在到期之前与其他人共享此url 我想要的是某种身份验证,以确保url只在经过身份验证的用户浏览器中工作 我已经实现了一种方法,使用我的服务器作为amazon和用户之间的中继,但更愿意将用户直接指向amazon 是否有一种方法可以在用户浏览器中创建某种会话cookie,然后让amazon在提供文件之前使用该会话cookie 单独使用S3是不

我正在S3上为一个网站存储一些文件。目前,当用户需要一个文件时,我会创建一个签名url(查询字符串身份验证),该url将过期并发送到他们的浏览器。但是,他们可以在到期之前与其他人共享此url

我想要的是某种身份验证,以确保url只在经过身份验证的用户浏览器中工作

我已经实现了一种方法,使用我的服务器作为amazon和用户之间的中继,但更愿意将用户直接指向amazon


是否有一种方法可以在用户浏览器中创建某种会话cookie,然后让amazon在提供文件之前使用该会话cookie

单独使用S3是不可能的,但CloudFront提供了此功能。看看文档中的这一章:。

我不确定s3是如何工作的,但我认为您可以创建一个票证url,将票证号码发送给客户端,将密钥保存到客户端浏览器,并在请求时调用。在google上没有找到任何类似的内容……链接?CloudFront似乎更像是一种CDN类型的服务。这并不是我们真正需要的,因为我们不希望将内容分发到边缘服务器。我还看到它可以用IP对URL进行签名,这很好,但仍然不够安全。我认为你说得对,单靠s3是无法实现的。那么唯一可行的解决方案是通过EC2实例路由数据传输,该实例处理你提到的安全方面……但老实说:我认为CloudFront+自定义策略声明是最简单和最昂贵的(成本)实现你计划的有效方法。非常感谢你的建议。我不确定我是否了解基本知识…我们让cloudfront访问bucket,然后签署所有限制到ip的cloudfront URL?或者cloudfront是否有更强大的安全性?你能把我和你建议的配置方式联系起来吗?谢谢,首先,我会从这个开始,然后你的工作方式通过。