【问题标题】:How can I "hide" the data in AWS from users?如何向用户“隐藏” AWS 中的数据?
【发布时间】:2016-01-14 01:59:42
【问题描述】:

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

【问题讨论】:

  • 为什么必须在 JavaScript 中进行数据转换(“解密”)?为什么不能使用 Java/PHP/Ruby/Python 等服务器端技术?
  • 好点。服务器可以在 AWS 上吗?如果是这样,哪种 AWS 技术最容易实施?我研究了 lambda,它看起来很有希望,因为它似乎让我可以轻松上传函数。但是速度很关键。数据将有很多 GB,并且必须快速解密。理想的情况是,如果有一些 AWS 组件允许我上传已编译的 C/C++ 函数来解密 S3 记录。
  • 您的问题相当广泛。当然,有很多方法可以将其作为服务托管在 AWS 上。您可以在 EC2 服务器上部署某种服务,也可以将函数上传到 Lambda。

标签: amazon-web-services encryption amazon-s3 amazon-ec2


【解决方案1】:

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

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

关于您对 AWS 上的一项服务的具体问题,该服务将加密您的公共数据然后即时解密,没有任何开箱即用的方法。您必须构建这样的服务并将其托管在 Amazon 上,但我认为这根本不是解决此问题的正确方法。只是不要一开始就公开您的数据,并让所有对数据的请求都通过某些服务来验证用户应该能够访问数据。在您的情况下,这意味着验证用户是否已付费访问他们请求的数据。

【讨论】:

  • 感谢您的帮助 mbaird!我读到 Elastic Beanstalk 支持 .net。我想我可以用 C# 实现一个 websocket 服务器并将其上传到 Elastic Beanstalk。服务器可以使用 S3 作为后端存储。
  • 另外,我想我可以将带有自制挂钩的 Apache 网络服务器上传到 EC2。
  • 只需使用您最熟悉的任何技术/语言/服务器编写服务即可。您可以在 EC2 上运行几乎任何东西。如果您不想自己设置和管理服务器,请使用 Elastic Beanstalk。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 2013-10-29
  • 2023-03-09
  • 2023-03-15
  • 2013-01-09
  • 1970-01-01
  • 2023-01-22
相关资源
最近更新 更多