【问题标题】:Client side public key encryption客户端公钥加密
【发布时间】:2019-07-09 11:37:09
【问题描述】:

我们正在构建一个具有以下功能的移动应用程序

  1. 在未连接到 Internet 时捕获用户信息(文本、音频)
  2. 将信息存储在设备上,使用服务器端公钥加密
  3. 当互联网连接可用时,使用预签名 URL 上传到 s3
  4. 一旦文件在 s3 中可用,另一个后台进程 (?) 使用上述公钥的服务器端私有密钥对其进行解密并复制到另一个存储桶

由于监管要求,设备上的文件需要在未连接到互联网时进行静态加密。否则 s3 加密客户端 (AmazonS3EncryptionClient) 可用于此目的,以便在上传时即时加密。

我的问题是第 4 步。这一步是否可以使用 s3 触发器 lambda 函数?我想 lambda 可用磁盘大小的限制意味着将文件从 s3 复制到 lambda 本地目录不适用于大文件(文件可能只有几 GB)。还有哪些其他可用选项(最好是无服务器)?流式传输 s3 对象并在内存中解密呢?

【问题讨论】:

    标签: c# encryption amazon-s3 aws-lambda public-key-encryption


    【解决方案1】:

    这一步是否可以使用 s3 触发器 lambda 函数? .. 流式传输 s3 对象并在内存中解密呢?

    您可以在 s3 上作为流读取-解密-写入,然后 lambda 限制将在执行时间(900 秒 = 15 分钟)。如果您可以在 15 分钟内处理该文件,那么使用 lamba 可能是个好主意。恕我直言,您可以在 15 分钟内处理大量 GB,但总有 15 分钟。限制(前段时间是 5 分钟)。

    还有哪些选择

    如果您想在没有任何处理时间限制的情况下处理文件,我建议让 s3 lambda 向 AWS Job 队列发送消息

    【讨论】:

    • 谢谢。你能解释一下读-解密-写吗?你有例子吗?
    • @ubi 我的意思是您可以从源文件打开一个输入流,将数据解密为块并将解密的数据写入输出流到目标存储桶。这超出了问题的范围,您应该搜索文档。
    猜你喜欢
    • 2019-11-27
    • 2017-05-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多