【发布时间】:2014-05-10 20:38:46
【问题描述】:
直接在应用程序代码中添加 AWS 访问密钥和秘密密钥绝对不是一个好方法,主要是因为应用程序驻留在用户设备上(与服务器端代码不同),并且可以通过逆向工程来获取凭证,这可以然后被滥用。
虽然我到处都可以找到此信息,但我无法找到解决此问题的最终解决方案。我有哪些选择?我阅读了有关临时凭证的令牌自动售货机架构,但我不相信它会更好。如果我可以对密钥进行逆向工程,那么我可以对请求临时凭证的代码进行逆向工程。一旦我拥有一组访问 S3 的临时凭据,我就如同拥有密钥一样出色。我可以一次又一次地请求临时凭证,即使它们很快过期。总而言之,如果一个应用程序可以做某事,我可以像恶意用户一样做。如果有的话,TVM 在管理方面可能会更好一些(轮换凭证,以及在发生违规时更改密钥等)。请注意,我们可以对密钥设置相同的访问限制,就像我们计划在 TVM 临时凭证的情况下那样。
此外,如果亚马逊不希望人们直接在应用程序中使用密钥,他们为什么不在他们的 SDK 中阻止它,并强制执行 TVM 或正确的解决方案。如果你留下一条路,人们就会使用它。我看了几篇这样的文章,不知道为什么?:http://blog.rajbala.com/post/81038397871/amazon-is-downloading-apps-from-google-play-and
我主要来自网络背景,所以我对此的理解可能有点缺陷。请帮助我了解这是否更好,以及是否有一个完美的(或可能是好的)解决方案来解决这个问题。
PS:是否有 TVM 的 Rails 实现?
【问题讨论】:
-
你最后用了什么?
-
@Jasper...我仍然不知道正确的方法。
-
@Jasper 我想我可能已经找到了解决问题的好方法。请查看我的回答,让我知道这是否能解决您的问题,或者您是否找到了更好的方法。
标签: android ios ruby-on-rails amazon-web-services amazon-s3