Используя Amazon S3 как устройство хранения данных для вложений в системе веб-почты

Разделите эти две сети полностью и поместите брандмауэр между ними (или просто изолируйте сеть процесса). Нет никакой причины выставить системы процесса как этот.

После того как это сделано, необходимо рассмотреть, как получить доступ к базам данных в части процесса сети. Существует много решений (перенаправление портов, прокси SQL и т.д.), но моя персональная рекомендация состояла бы в том, чтобы установить новый SQL-сервер, двойной дом это и в процессе и в пользовательской сети и копировать весь доступ потребности пользователей данных к в этот хост. Затем удостоверьтесь, что Вы блокируете вниз SQL-сервер в максимально возможной степени.

3
задан 21 November 2012 в 10:47
1 ответ

Недавно я разработал аналогичную систему для хранения отчетов - вот что, как мы обнаружили, работает хорошо:

  1. Используйте '/' в ваших ключах, чтобы создать структурированную иерархию. В вашем случае я бы сделал что-то вроде: / / / / / .
  2. Используйте предварительно подписанный URL , чтобы предоставить доступ к файлу в S3 только тем пользователям, у которых есть доступ к доставленному электронному письму.

Суть пункта (1) - убедиться, что вы не используете не иметь конфликтов между пользователями - вы можете реструктурировать иерархию, как вам нравится, но ключевым моментом является наличие уникальных идентификаторов помимо ключевой структуры (в данном случае идентификатора пользователя и идентификатора сообщения), при сохранении исходного имя файла как последняя часть структуры; эта последняя часть структуры - это то, что большинство браузеров используют в качестве имени для загруженного файла.

Обратите внимание, что я включил дату как часть структуры - если у вас будет много объектов, вы собираетесь чтобы разделить их на виртуальные «папки» в пространстве ключей S3, чтобы вам не приходилось бесконечно ждать каждый раз, когда вам нужно искать файлы вручную.

Пункт (2) предоставляет доступ к файлам только получателям сообщения. Только владелец корзины (вы) сможет перечислять файлы (если вы явно не предоставите другие разрешения), но любой, у кого есть ссылка на файл, может получить к нему доступ.

Если вы хотите добавить больше контроля над ссылками, создайте ссылки, которые направляют пользователя через ваше приложение, а затем, если ваше приложение решает, что пользователь действительно авторизован, создайте предварительно подписанный URL-адрес и передайте его пользователю.

1
ответ дан 3 December 2019 в 07:37

Теги

Похожие вопросы