Влияет ли шифрование AWS RDS с KMS на производительность?

Amazon утверждает, что

Шифрование и дешифрование выполняются прозрачно, поэтому вам не нужно изменять приложение для доступа к вашим данным.

Мое приложение (Rails, MySQL, Elasticsearch) создает много графики и поэтому запрашивает много данных. Судя по моему предыдущему опыту шифрования базы данных, это действительно влияет на скорость извлечения данных (поскольку мы можем сказать, только если запись соответствует условию после ее чтения и расшифровки).

Есть ли соответствующие ориентиры? Или, может быть, вы работали с таким шифрованием на стороне сервера от AWS? Нужно ли вообще беспокоиться об изменениях производительности?

Также мне не совсем ясно, возможно ли шифровать данные Elasticsearch таким же «прозрачным» способом. Я бы тоже воспользовался твоим советом по этому поводу


person borisano    schedule 14.08.2016    source источник


Ответы (1)


Судя по моему предыдущему опыту шифрования базы данных, это действительно влияет на скорость извлечения данных (поскольку мы можем сказать, только если запись соответствует условию после ее чтения и расшифровки).

Это было бы так, если бы каждое значение каждой записи было зашифровано перед вставкой в ​​базу данных. Это не то, как работает шифрование RDS. Шифрование RDS работает путем включения шифрования томов EBS, на которых хранится база данных. Для ядра базы данных RDS данные не выглядят зашифрованными. Это то же самое, что включить шифрование на томе EBS, подключенном к вашему серверу EC2.

Что касается производительности, я не заметил снижения производительности при включении шифрования на RDS и EBS. Согласно документации AWS здесь:

вы можете рассчитывать на такую ​​же производительность операций ввода-вывода в секунду на зашифрованных томах, как и на незашифрованных томах, с минимальным влиянием на задержку.


Обратите внимание, что это «шифрование в состоянии покоя». Если вам также нужно, чтобы данные были «зашифрованы при передаче», вам нужно будет изучить использование SSL-соединений для всех ваших подключений к базе данных и, возможно, включить параметр в вашей базе данных для принудительного использования SSL-соединений.


Что касается вашего второго вопроса, AWS, похоже, в настоящее время не поддерживает шифрование в состоянии покоя для службы ElasticSearch. Для шифрования при передаче можно использовать соединения HTTPS, как указано в ответе службы поддержки AWS на этот вопрос:

Вы можете использовать https для зашифрованной связи с вашим доменом.

Связь между узлами не шифруется. Сами ноды размещаются внутри нашего VPC, и вся связь между нодами остается внутри него.

person Mark B    schedule 14.08.2016