2016-10-03 118 views
1

我想利用S3让我的客户下载我的软件包。我的设想是创建一个具有授权的简单Web应用程序例如(download.mysoftware.com)用户通过身份验证后,将会显示一个用于下载软件的S3网址。我将根据我的客户创建用户帐户。通过特定应用程序执行S3存储桶策略

我担心的是,如果用户复制S3 URL链接,然后将其提供给未经身份验证的用户下载软件,会发生什么?

是否有可能创建一个S3策略来阻止这种情况并为我的用例工作?我只考虑只允许特定的IP,但是,我无法找到客户的IP,并且不希望先询问他们,然后每次都将其添加到策略中。

允许特定IP的一种方式是,如果我只允许从链接到(download.mysoftware.com)的IP下载,但下载实际上是从我的web应用程序而不是从S3发生的。这似乎是双重努力。

回答

2

当用户请求下载您的应用程序时,为他们生成一个短期到期的pre-signed URL。它只需要有效,只要它将它们带到开始下载您的文件,所以即使几分钟的有效性可能会很多。

尽管用户在技术上可以共享这些URL之一,但他们必须将URL传递给其他人并让他们很快下载,这可能足以阻止他们尝试共享URL 。 (完美的防御更困难,而且可能无用,无法阻止用户将他们下载的文件传送给其他人。)

相关问题