#amazon-web-services #encryption #amazon-dynamodb #aws-kms
#amazon-веб-сервисы #шифрование #amazon-dynamodb #amazon-kms
Вопрос:
Я пытаюсь реализовать стратегию для нескольких регионов для моих лямбд, которые используют глобальные таблицы dynamodb.
Я хочу использовать KMS для шифрования на стороне клиента для идентификатора пользователя и PIN-кода. Как я могу реализовать стратегию для нескольких регионов для KMS. Я нашел этот пример, в котором говорится о том же https://aws.amazon.com/blogs/security/how-to-use-the-new-aws-encryption-sdk-to-simplify-data-encryption-and-improve-application-availability/
Означает ли это, что я должен создавать ключи KMS во всех регионах, в которых я развертываю свой lambda (для задержки)?
Вопрос-1: Если да, то если я предоставляю несколько регионов в MultipleProviderFactory, какой из ключей он использует для шифрования данных и какой регион он использует для расшифровки данных?
Вопрос-2: Как это изменится, если мне придется шифровать данные размером более 4096 КБ?
Ответ №1:
Идея SDK для шифрования заключается в использовании шифрования в конверте. Таким образом, каждый раз, когда вы шифруете сообщение или данные, SDK генерирует случайный ключ данных для этого сообщения и использует его для шифрования тела сообщения. Затем он шифрует сам ключ ВСЕМИ вашими поставщиками и включает эти зашифрованные ключи в заголовок сообщения.
Пока любая из этих форм ключа может быть расшифрована из заголовка, SDK может извлекать ключ данных и использовать его для расшифровки тела сообщения.
Итак, первый вопрос: он шифрует их всеми и расшифровывает с помощью любого из них. Я не знаю фактической логики того, как он выбирает поставщика для дешифрования, но, вероятно, это просто в том порядке, в котором они определены в multiproviderfactory.
И другие: Вы можете зашифровать более 4 КБ (предполагая, что «4096 КБ» — это опечатка) без каких-либо изменений, поскольку тело зашифровано / расшифровано локально с помощью AES. Ограничение в 4 КБ предназначено только для полезной нагрузки в / из KMS, которая является просто ключом данных.