【问题标题】:Export DynamoDB table to S3 with client side encryption使用客户端加密将 DynamoDB 表导出到 S3
【发布时间】:2015-07-20 16:50:02
【问题描述】:

我正在尝试使用数据管道将数据从 Dynamo 导出到 s3。但是,在将文件写入 s3 之前,我无法弄清楚如何应用客户端加密。有没有办法用数据管道做到这一点?除了使用 Data Pipeline 进行客户端加密之外,我能够设置所有内容。理想的流程是一个发电机源节点、一个要加密的活动和一个 S3 目标节点。

我也尝试过 Elastic MapReduce,但我不知道如何编写映射器和缩减器,因为我没有转换任何数据 - 我只需将其移动到 s3 上的加密文件。我应该能够将 EMR 与 hive 程序一起使用,但我很难理解如何在不编写自定义 map/reduce 代码的情况下使用 EMR。理想情况下,S3 中不存储任何代码。

服务器端加密不是一个选项,数据需要在写入 s3 之前加密。

我正在寻找有关如何执行此操作的一些想法或遇到类似挑战的人。

【问题讨论】:

    标签: encryption amazon-s3 hive amazon-dynamodb elastic-map-reduce


    【解决方案1】:

    当前的 Data Pipelines 解决方案目前不支持用于自定义预处理或后处理的挂钩。

    你的桌子有多大?完成导出过程需要多长时间?

    使用 DynamoDB 并行扫描应该可以做到这一点:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScanParallelScan

    基本上你会编写一个程序来使用多个线程来处理并行扫描的扫描段,执行加密,并将加密的项目存储在 S3 中。每个 DynamoDB 扫描页面应返回约 1MB 的数据,因此您可以在发布到 S3 之前聚合多个页面。

    要恢复数据,您需要加载 S3 文件、解密,然后写回 DynamoDB。

    【讨论】:

      【解决方案2】:

      如果您的使用案例可以接受,您可以在将数据写入 DynamoDB 之前进行客户端加密。然后,您可以使用 Data Pipelines 将加密数据导出到 S3。

      我有一个 similar setup 用于我的应用程序,使用 aws-labs 提供的 client-side encryption library。我们每天导出表格以保留备份。只要将加密元数据与数据一起导出,就可以恢复数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-04
        • 1970-01-01
        • 2021-01-02
        • 2015-02-16
        • 1970-01-01
        • 2021-03-01
        • 2022-11-10
        相关资源
        最近更新 更多