所以这可能是一个愚蠢的问题,但如果需要私钥和公钥,使用Amazon SQS有什么意义呢?如果客户端有私钥和公钥,他们可能会通过反编译或其他方式发现密钥......
我能想到的唯一安全方法是使用具有私钥和公钥的代理(如php)。但那么首先使用SQS有什么意义呢? SQS的主要好处(我可以看到)它可以向上扩展,您不必担心收到的消息数量。但是,如果你要使用代理,那么你也必须扩展...我希望我的担忧有意义吗?
由于
答案 0 :(得分:5)
如果您必须提供密钥以便客户从队列中提取数据,那么您的担忧是有效的。但是,典型的工作流程涉及使用您的AWS账户ID来创建和修改队列,并可能将数据推送到队列中。然后,您可以使用SQS addPermission操作设置权限,也可以设置更精细控制的访问策略。这意味着您只能对特定的AWS账户或匿名用户授予读取权限,但您不允许进行其他修改。
所以基本上你有几个选择。您可以使用高级设置的AWS公钥和私钥进行编译,这些密钥对客户端应用程序具有受限制的权限。在我看来,更好的方法是将公钥和私钥文件设置为客户端上的可配置选项,并告诉客户用户他们负责获取自己的AWS账户和密钥,他们可以告诉您他们的AWS密钥是什么,您可以根据需要为每个客户提供细粒度控制。
这些资源对您来说很有用: