我在Amazon S3中有一个存储桶,我将数据设置为只读给所有人。但是,这不是我想要的。我希望这些数据只能从我的移动应用程序访问,并限制它通过URL下载。
这可能吗?如果是这样,如何实施这样的桶策略?
答案 0 :(得分:9)
传统上,以这种方式访问移动应用程序:
如果您希望移动应用上的任何用户访问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
希望这有帮助!