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