2011-05-19 88 views
0

亚马逊云服务(AWS)提供了可随时使用的库,以便从Android应用程序直接拨打SDB,S3,SNS等。这使不熟悉Web服务和Web应用程序的移动开发人员很容易创建完全可扩展的基于云的应用程序。 我们给这些API调用中的Amazon Access凭证连接到我们的云账户;我的问题是:Android应用程序中的亚马逊访问凭证

  1. 如何在应用程序中有效使用密钥轮播,因为我将分发应用程序,一旦密钥更改可能意味着对现有用户造成周期性中断。
  2. 对代码内部的Amazon Access Credentials进行硬编码(作为字段常量等)会使它容易被提取?通过反编译等?

回答

1

我跟亚马逊倡导我们的区域,他告诉记者,亚马逊的客户端库设计这样一个目的。

  • 它可以用于内部应用程序(未发布),如客户端演示应用程序。
  • 如果您将凭证与要在公开市场发布的应用程序捆绑在一起(不推荐),请使用IAM并创建具有受限访问权限的单独凭据。
  • 如果您正在构建一个类似Instagram的应用程序,您可能需要设置一个Web服务器来代理您对亚马逊的调用(有效地使客户端库无用)。

显然,我不是很确信。我认为整个亚马逊通信的客户端库(绕过对Web服务器的需求)对移动开发者来说可能是一个很大的优势。

+0

我现在有同样的想法。两年后你有什么建议吗? – auval 2013-04-07 16:15:54

+0

@uval我有机会与顶尖的AWS人员(包括Werner Vogels)讨论此事。答案是Android SDK是他们不推荐自己的东西。它不适合认真工作! – Codevalley 2013-04-11 12:35:40

+0

所以我明白你最终确信会放弃这个想法。这确实是一个很大的优势。谢谢!! {感谢StackOverflow让这种交互成为可能!} – auval 2013-04-11 14:43:03

0

回复:

会硬编码里面的代码亚马逊访问凭据(如现场恒等),使其易受提取?通过反编译等?

是的,通过在二进制文件中查找字符串和模式。也反编译,但通常没有必要。

第一个问题是,您试图防​​范哪种威胁?政府?付费黑客?或者你只是想通过应用程序获得访问权限并不容易?

  • 限制访问键只能访问应用程序需要的数据。
  • 将这些密钥存储在应用程序中,分几块。以某种方式修改它们(例如ROT47),然后在发送到服务时重新组合。
  • 请勿将所有关键信息放入应用程序中。需要使用其他安全设备,例如Amazon MFA
  • 安装监控可检测可能表明从应用外部访问的异常访问模式。
+0

亚马逊访问密钥在这里就像应用程序的访问登录,并且由于没有服务器/ Web服务正在运行,并且所有业务逻辑都是通过应用程序发生的,因此子项1和3在这里没有相关性。至于威胁,我的意思是黑客。 – Codevalley 2011-05-19 05:40:53