2015-11-10 4 views
0

Я сохраняю некоторые изображения/объекты в aws s3 bucket из своего приложения. Сначала я получаю подписанный url из servicejs service api и загружаю изображения или файлы в пенный url с помощью jquery ajax. Я могу открыть изображение или объект, используя ссылку, указанную в свойствах (https://s3.amazonaws.com/bucketname/objectname).Зашифровать объект в aws s3 bucket

Я хочу обеспечить безопасность для каждого загруженного объекта. Даже случайно, если какой-либо анонимный пользователь получит ссылку (https://s3.amazonaws.com/bucketname/objectname), то он не сможет открыть ее. Они (объекты) должны быть доступны и открывать только такие случаи, как когда запрос имеет некоторые значения ключевых слов заголовков и т. Д. Я попробовал шифрование на стороне сервера, указав значения ключа заголовка в запросе, как показано ниже.

 var file = document.getElementById('fileupload').files[0]; 
     $.ajax({ 
      url: signedurl, 
      type: "PUT", 
      data: file, 
      header:{'x-amz-server-side-encryption':'AES256'},    
      contentType: file.type, 
      processData: false, 
      success: function (result) { 
       var res = result; 

      }, 
      error: function (error) { 
       alert(error); 
      } 

Не следует ли шифровать стороннее шифрование зашифрованного объекта на хранилище ведро s3? Шифрует ли он только при передаче и расшифровке перед сохранением на s3-накопителе?

Если он хранит зашифрованный объект в хранилище s3, то как я могу открыть его, используя ссылку, показанную в свойствах.

ответ

1

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

Если вы хотите сохранить объекты в Amazon S3 частным образом, но сделайте их доступными для определенных авторизованных пользователей, я бы рекомендовал использовать Предписанные URL-адреса.

Это работает, когда ваше приложение генерирует URL-адрес, который обеспечивает ограниченный доступ к определенному объекту в Amazon S3. В противном случае объекты остаются закрытыми, поэтому они недоступны.

См документация: Share an Object with Others

+0

Я сделал объект частного отключив открытой/загрузку и просмотр разрешений свойства объекта, но до сих пор я могу открыть/объект вида со ссылкой (https://s3.amazonaws.com/bucketname/имя_объект). Думаю, мне нужно зашифровать файл на стороне клиента и сохранить его на s3. Поэтому любой пользователь или даже владелец s3 не мог просматривать/открывать объекты, несмотря на наличие ссылки на объект. Они должны извлекать объект из s3 и расшифровывать его с помощью закрытого ключа. – Praveen

+0

Возможность доступа к объекту в Amazon S3 полностью не зависит от шифрования. Давайте сосредоточимся на доступе. Возможно, ваш объект был кэширован вашим браузером, поэтому попробуйте открыть его в другом браузере или на другом компьютере. Он должен вернуть «Access Denied». Если он по-прежнему доступен, тогда у вас может быть политика Bucket, которая предоставляет доступ. Первый шаг - снова открыть ваши объекты, а затем сыграть с методами предоставления доступа. Также убедитесь, что вы открываете объект, щелкнув ссылку в ** Свойства **, а не используя команду ** Открыть **. –

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