通过特定应用程序的S3存储桶策略

时间:2016-10-03 23:21:06

标签: security amazon-web-services amazon-s3 s3-bucket

我正在尝试利用S3让我的客户下载我的软件包。我所设想的是创建一个带有授权的简单Web应用程序例如(download.mysoftware.com)一旦用户通过身份验证,他们就会看到用于下载软件的S3 URL。我将根据客户创建用户帐户。

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

是否有可能创建一个S3策略来防止这种情况并为我的用例工作?我看过只允许特定的IP,但是,我没有办法找到客户的IP,并且不想先问他们,然后每次都将它添加到策略中。

允许特定IP的一种方法是,如果我只允许从链接到(<button class="button-action" data-id="1"> <button class="button-action" data-id="2"> <button class="button-action" data-id="3"> )的IP下载,但是下载将真正发生在我的Web应用程序而不是S3。这似乎是双重努力。

1 个答案:

答案 0 :(得分:2)

当用户提出下载您的应用程序的请求时,请为他们生成pre-signed URL,并且过期时间很短。它只需要有效,只要它们开始下载你的文件,所以即使几分钟的有效性也可能很多。

虽然技术上用户可以共享其中一个URL,但他们必须将URL传送给其他人并让他们快速下载,这可能足以阻止他们尝试共享URL。 (完美的防御更加困难,反正可能是不必要的;没有办法阻止用户亲自将他们下载的文件传输给其他人。)