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

时间:2017-08-08 10:56:56

标签: amazon-web-services amazon-s3 aws-sts

我在Amazon S3中有一个存储桶,我将数据设置为只读给所有人。但是,这不是我想要的。我希望这些数据只能从我的移动应用程序访问,并限制它通过URL下载。

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

2 个答案:

答案 0 :(得分:9)

传统上,以这种方式访问​​移动应用程序:

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

如果您希望移动应用上的任何用户访问S3存储桶,那么用户无需在第一步中进行身份验证 - 这只是您的移动应用请求了一些临时凭证。

以上都不需要Bucket Policy。权限将根​​据STS凭据授予,而不是他的存储。

答案 1 :(得分:1)

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

方式1 - 在移动应用中设置http请求引用,并在S3上创建与此refrer匹配的策略。

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

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

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

希望这有帮助!