2015-10-15 27 views
0

我想使用亚马逊网络服务(AWS)构建应用程序。 应用程序的工作方式是这样的; 我制作了一个程序,让用户以外部格式导入大文件,并以自己的格式将其发送到AWS(S3?)。 接下来,许多用户可以访问来自Web和桌面应用程序的数据。 我想为每个访问数据的用户收费。 问题是,AWS上的数据必须采用难以理解的格式,否则用户可能会将数据复制到另一个无法收费的AWS账户。换句话说,用户需要先对数据进行“解密”,然后才能使用它们。在网络上,这必须用纯文本的JavaScript来完成,并且允许用户找出我无法理解的格式。 我该如何解决这个问题? 是否有例如内置的加密/解密机制? 或者,AWS中有一些简单的方法可以使用预先编译的代码将数据上传到AWS来解密数据?如何从用户中“隐藏”AWS中的数据?

+1

数据转换(“解密”)必须在JavaScript中完成的任何原因?为什么你不能使用像Java/PHP/Ruby/Python等服务器端技术? –

+0

好点。服务器可以在AWS上吗?如果是的话,哪种AWS技术最容易实现?我看着lambda,它看起来很有前途,因为它似乎让我轻松上传一个函数。但速度至关重要。数据量很大,必须快速解密。理想的情况是,如果有一些AWS组件允许我上传解密S3记录的编译C/C++函数。 – Andy

+0

你的问题相当广泛。当然,有许多方法可以在AWS上将其作为服务托管。您可以在EC2服务器上部署某种服务,或者您可以将函数上传到Lambda。 –

回答

1

一般来说,当你不想让你的用户访问你的应用程序的原始数据时,你就不会公开这些数据。你应该建立一些服务器端的进程,读取原始数据并提供用户请求的内容。您可以将数据存储在数据库中或S3中的文件或任何您想要的地方,只是不要公开访问。然后,您可以要求用户登录到您的应用程序以访问数据。

您可以使用EC2或Elastic Beanstalk或可能的Lambda在AWS上托管此类服务。您也可以使用API​​网关来管理对您构建的服务的访问。

关于您关于AWS上的一项服务的具体问题,它将对您的公共数据进行加密,然后对其进行加密解密,但没有任何东西可以立即使用。你将不得不建立这样的服务,并在亚马逊上托管它,但我不认为这是完全适合的方式。只是不要首先公开访问数据,并且要求所有数据请求都通过一些服务来验证用户应该能够访问数据。在你的情况下,这将意味着验证用户已付费访问他们请求的数据。

+0

谢谢你的帮助mbaird!我读过Elastic Beanstalk支持.net。我想我可以在C#中实现一个websocket服务器并将其上传到Elastic Beanstalk。服务器可以使用S3作为后端存储。 – Andy

+0

或者我猜我可以上传一个带有自制钩子的EC2的Apache网络服务器。 – Andy

+0

只需用您感觉最舒适的任何技术/语言/服务器编写服务即可。你可以在EC2上运行任何东西。如果您不想自己设置和管理服务器,请使用Elastic Beanstalk。 –