【发布时间】:2016-05-13 09:30:46
【问题描述】:
我们面临一个用例,我们需要在 S3 上存储用户的机密图像。现在,由于 S3 可以通过 HTTP 访问,并且如果我们授予对对象的读取访问权限,它们将通过 web 向世界提供。我们需要将图像/文件仅限于该用户。所以我们认为可能的解决方案是:
- 以某种方式屏蔽网址。(不知道具体如何)
- 通过创建唯一的加密 s3 密钥来存储文件/图像
例如:http://bucket.s3.amazon.com/clients/img/j84jaljvkeh774d/myimage.jpg
在第一个中,我们可能无法获得 cloudfront 或 cdn 的好处,因为它可能涉及独立的代理服务器。
第二个是安全的,因为如果密钥名对用户来说是唯一的,则很难预测它。
使用 ACl 和存储桶策略 并不能完全解决问题。
此外,如果我们编写限制 IP 地址的策略,使用相同 API 后端的移动应用程序最终将无法正常工作,因为这些应用程序的请求来自不同的 IP。
我们知道我们无法完全保护它们,但我们有办法处理这种情况吗?请分享您的意见。
【问题讨论】:
标签: amazon-web-services amazon-s3