Пользователи загружают напрямую на S3 через AJAX, чтобы уменьшить нагрузку на сервер. Я бы хотел, чтобы AES-256 зашифровывал файлы с помощью серверного шифрования Amazon.
Тем не менее, я хочу зашифровать с помощью специального ключа на сервере S3, чтобы пользователь не смог увидеть ключ. Я хочу, чтобы следующее при скрытии от пользователя при отправке формы. Это не возможно? Ключ, закодированный в base64, недостаточно полезен — мне нужно что-то вроде шифрования его с помощью секретного ключа Amazon.
'x-amz-server-side-encryption-customer-algorithm' => 'AES256'
'x-amz-server-side-encryption-customer-key' => base64_encode($this->user->getKey())
'x-amz-server-side-encryption-customer-key-MD5' => base64_encode(md5($this->user->getKey()))
Два других правдоподобных решения — это создание пользовательских ключей для каждого файла, основанного на исходном ключе, или добавление шифрования после того, как пользователь загрузил файл на мой сервер (единственный способ сделать это — скопировать файл и добавить ключ шифрования). ?).
Задача ещё не решена.
Других решений пока нет …