【发布时间】:2017-08-08 20:43:56
【问题描述】:
我在 Amazon S3 中有一个存储桶,我将其中的数据设置为对所有人只读。然而,这不是我想要的。我希望只能从我的移动应用程序访问这些数据,并将其限制为通过 url 下载。
这可能吗?如果是这样如何实现这样的桶策略?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sts
我在 Amazon S3 中有一个存储桶,我将其中的数据设置为对所有人只读。然而,这不是我想要的。我希望只能从我的移动应用程序访问这些数据,并将其限制为通过 url 下载。
这可能吗?如果是这样如何实现这样的桶策略?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sts
传统上,通过这种方式访问移动应用程序:
如果您希望移动应用程序上的任何用户访问 S3 存储桶,则该用户无需在第一步中进行身份验证——这只是您的移动应用程序请求了一些临时的凭据。
以上都不需要存储桶策略。权限将根据 STS 凭据而不是存储桶授予。
【讨论】:
没有直接的方法可以在 S3 存储桶中设置客户端特定的策略,但您的用例可以通过其他方式实现。
方式 1 - 在您的移动应用程序中设置一个 http 请求引用者,并在 S3 上创建与该引用者匹配的策略。
方式 2 - 通过匹配客户端类型并在请求中添加少量条件的服务器重定向所有请求。这些条件可以在 S3 策略中处理。
方式 3 - 通过其 ip 在 S3 存储桶上列入白名单的服务器重定向您的所有应用请求。虽然在这里你必须使用一些代理服务器或负载平衡器。
这是有关访问政策和条件的官方 S3 文档 - http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
希望这会有所帮助!
【讨论】: