隐藏应用程序中的AWS秘密

时间:2015-04-20 19:59:50

标签: amazon-web-services amazon-s3

我是一名Java后端工程师,致力于前端(SPA和Android)必须将(大)文件发送到S3的功能。因为我必须管理很多请求。由于网络过载的原因,我避免制作一个代理服务器'服务,前端发送给我文件,以便我可以将其发送到S3,但我有一些关注保持我的应用程序安全的最佳方法。

我寻找了一些解决方案,但我找不到能够完全管理我想要的解决方案。

Amazon S3 upload with not showing secret key in frontend

这篇文章几乎是我的答案,但我没有足够的评分来评论。 S3 upload directly in JavaScript

我在AWS上阅读了一些文档,但我仍然有一些问题和一些必要条件。

  • 解决方案可能允许客户端经过身份验证的用户直接向s3发送文件
  • 它可以进行GET调用以获取一些令牌或类似的东西(不发送大量数据)
  • 安全(前端没有密钥知识)

哪种解决方案可能对我有好处?

您认为这些方法有效吗?你觉得哪一个更好?有什么权衡?还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

此处要做的最好的事情是使用Cognito服务在应用中生成匿名凭据,以允许上传到S3。对于Android,您可以使用SDK从设备到S3进行多部分上传,这也将加快这一过程。

我无法找到确切的Android示例,但这是针对iOS的,并且术语应该转移相同,只需使用其他SDK:iOSTransferManager

如果您有基于网络的应用,也可以直接从javascript调用Cognito:Cognito in JS example 希望有所帮助! - 克里斯