2016-04-08 3 views
0

У меня есть служба отдыха, которая передает содержимое в ведро AWS S3. Мне было интересно, какие альтернативы шифруют этот поток в ведро, мои требования были бы первичными, что ключ шифрования был автоматизирован (например, KMS), а затем был бы разумным.Использование AWS S3-шифрования с входными потоками

Возможно ли шифрование входных потоков с помощью KMS без использования byte[] и буферизации всего содержимого в памяти?

Я планирую загрузить несколько больших файлов> 1 ГБ (вот почему потоковая передача, чтобы избежать ошибок OOM), что было бы предпочтительным советом для этого, есть ли существенная разница по сравнению с небольшими файлами < 10 МБ?

Благодаря

ответ

1

Я предполагаю, что вы используете this версию PutObjectRequest, которая принимает InputStream.

  1. Передача данных на S3 происходит через SSL, поэтому сетевая передача зашифрована.

  2. Чтобы использовать ключ KMS для шифрования данных, хранящихся на S3, вы можете просто указать ключ KMS, который вы хотите использовать S3. После создания PutObjectRequest, просто вызовите: putObjectRequest.withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID)); перед вызовом s3Client.putObject()

В качестве альтернативы, если вы хотите сделать все шифрование на стороне клиента, вы можете использовать AmazonS3EncryptionClient и EncryptedPutObjectRequest классы Java AWS SDK.

+0

благодарит за информацию –

Смежные вопросы