仅适用于移动应用程序访问的 Amazon Bucket Policy

Amazon Bucket Policy for only mobile app access

我在 Amazon S3 中有一个存储桶,我将其中的数据设置为对所有人只读。然而,这不是我想要的。我希望只能从我的移动应用程序访问该数据,并将其限制为 url.

下载

这可能吗?如果是这样如何实施这样的存储桶策略?

没有直接的方法在 S3 存储桶中设置客户端特定策略,但您的用例可以通过其他方式实现。

方式 1 - 在您的移动应用程序中设置一个 http 请求引荐来源网址,并在 S3 上创建与此引荐来源网址相匹配的政策。

方式 2 - 通过匹配客户端类型的服务器重定向您的所有请求,并在请求中添加一些条件。这些条件可以在 S3 策略中处理。

方式 3 - 通过其 IP 在 S3 存储桶中列入白名单的服务器重定向所有应用程序请求。虽然这里你必须使用一些代理服务器或负载平衡器。

这是有关访问政策和条件的官方 S3 文档 - http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

希望对您有所帮助!

传统上,访问移动应用程序是这样完成的:

  • 移动应用程序用户向您的后端(通过您的移动应用程序)验证。这可以通过 Amazon Cognito 或您自己的 username/password.
  • 数据库来完成
  • 您的应用程序会检查他们的身份并确定允许他们访问哪些数据。然后,它使用 AWS Security Token Service (STS) 生成 具有有限权限 的限时凭证(例如,访问 S3 存储桶中的特定目录)。后端应用程序将这些凭据发送到移动应用程序。
  • 然后移动应用程序可以使用凭据向 AWSAPI 调用 AWS(无需通过您的后端服务器)。

如果您希望移动应用程序上的任何用户访问 S3 存储桶,则该用户不需要在第一步中进行身份验证——它只是您的移动应用程序请求了一些临时凭据。

None 以上需要一个桶策略。将根据 STS 凭据而不是存储桶授予权限。