Мультирегиональная стратегия для KMS

Я пытаюсь реализовать многорегиональную стратегию для своих лямбда-выражений, которые используют глобальные таблицы Dynamodb.

Я хочу использовать KMS для шифрования на стороне клиента для идентификатора пользователя и пин-кода. Как я могу реализовать многорегиональную стратегию для KMS. Я нашел этот пример, в котором говорится о том же https://aws.amazon.com/blogs/security/how-to-use-the-new-aws-encryption-sdk-to-simplify-data-доступность-приложения-и-улучшения/

Означает ли это, что мне нужно создавать ключи KMS во всех регионах, в которых я развертываю свою лямбду (для задержки)?

Вопрос-1. Если да, то если я предоставлю несколько регионов в MultipleProviderFactory, какой из ключей он использует для шифрования данных и какой регион — для расшифровки данных?

Вопрос-2: Как это изменится, если мне придется шифровать данные размером более 4096 КБ?


person bhanu.uday    schedule 22.09.2020    source источник


Ответы (1)


Идея SDK для шифрования заключается в использовании шифрования конверта. Таким образом, каждый раз, когда вы шифруете сообщение или данные, SDK создает случайный ключ данных для этого сообщения и использует его для шифрования тела сообщения. Затем он шифрует сам ключ со ВСЕМИ вашими провайдерами и включает эти зашифрованные ключи в заголовок сообщения.

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

Итак, первый вопрос: он шифрует их всеми и расшифровывает любым из них. Я не знаю фактической логики того, как он выбирает поставщика для расшифровки, но, вероятно, это просто в том порядке, в котором они определены в MultipleProviderFactory.

И другое: вы можете зашифровать более 4 КБ (предположим, что 4096 КБ — это опечатка) без каких-либо изменений, поскольку тело шифруется/дешифруется локально с помощью AES. Ограничение в 4 КБ относится только к полезной нагрузке в/из KMS, которая является просто ключом данных.

person Jop.pop    schedule 22.09.2020