2017-08-08 128 views
0

我在Amazon S3中有一个桶,并且我为每个人设置了只读数据。但是,这不是我想要的。我希望只能通过我的移动应用程序访问这些数据,并将其限制为通过网址下载。亚马逊桶策略仅适用于移动应用访问

这可能吗?如果是的话如何实施这种桶策略?

回答

2

传统,获得了移动应用程序做这样:

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

如果你想您的移动应用访问S3存储任何用户,则用户不需要在第一步验证 - 这纯粹是您的移动应用要求一些临时凭证。

以上都不需要桶策略。权限将授予对STS凭证,而不是他桶。

+0

感谢您提供宝贵的信息。 – birdcage

0

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

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

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

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

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

希望这有助于!