Экспорт таблицы DynamoDB в S3 с шифрованием на стороне клиента

Я пытаюсь использовать Data Pipeline для экспорта данных в s3 из Dynamo. Однако я не могу понять, как применить шифрование на стороне клиента до того, как файл будет записан на s3. Есть ли способ сделать это с помощью Data Pipeline? Я могу настроить все, кроме шифрования на стороне клиента с помощью Data Pipeline. Идеальный поток — это исходный узел динамо, действие для шифрования и узел назначения S3.

Я также пробовал Elastic MapReduce, но не вижу, как написать маппер и редуктор, так как я не преобразовываю никаких данных — мне просто нужно переместить их в зашифрованный файл на s3. Я должен иметь возможность использовать EMR с программой hive, но я изо всех сил пытаюсь понять, как использовать EMR без написания собственного кода map/reduce. В идеале код не хранится в S3.

Шифрование на стороне сервера не вариант, и данные должны быть зашифрованы перед записью в s3.

Я ищу некоторые идеи о том, как это сделать, или кого-то, у кого была аналогичная проблема.


person SqlDevInANoSqlWorld    schedule 10.05.2015    source источник


Ответы (2)


Текущее решение Data Pipelines в настоящее время не поддерживает перехватчики для пользовательской предварительной или последующей обработки.

Насколько велик ваш стол? Сколько времени приемлемо для завершения процесса экспорта?

Это должно быть возможно сделать с помощью параллельного сканирования DynamoDB: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScanParallelScan

По сути, вы должны написать программу, использующую несколько потоков для обработки сегментов сканирования для параллельного сканирования, выполнения шифрования и сохранения зашифрованных элементов в S3. Каждая страница сканирования DynamoDB должна возвращать примерно 1 МБ данных, чтобы вы могли объединить несколько страниц перед публикацией в S3.

Чтобы восстановить данные, вы должны загрузить файлы S3, расшифровать их, а затем записать обратно в DynamoDB.

person Ben Schwartz    schedule 12.05.2015

Если это приемлемо для вашего варианта использования, вы можете выполнить шифрование на стороне клиента перед записью данных в DynamoDB. Затем вы можете использовать конвейеры данных для экспорта зашифрованных данных в S3.

У меня есть аналогичная настройка для моего приложения с использованием клиентская библиотека шифрования, предоставленная aws-labs. Мы ежедневно экспортируем таблицы для сохранения резервных копий. Восстановление данных работает до тех пор, пока вместе с ними экспортируются метаданные шифрования.

person jrochette    schedule 16.07.2015