2016-10-03 2 views
1

Я пытаюсь использовать S3, чтобы мои клиенты загружали мой пакет программного обеспечения. Я представляю себе создание простого веб-приложения с авторизацией Например (download.mysoftware.com) После аутентификации пользователя им будет представлен URL-адрес S3, используемый для загрузки программного обеспечения. Я создам учетные записи пользователей на основе моих клиентов.Политика ведомости S3 через конкретное приложение

Моя забота о том, что произойдет, если пользователь скопирует ссылку URL-адреса S3 и затем передаст ее кому-то, кто не прошел аутентификацию для загрузки программного обеспечения?

Возможно ли создать политику S3, которая предотвратила бы это и работала бы для моего использования? Я смотрел, что допускаю только определенные IP-адреса, однако у меня не будет способа узнать IP-адреса моих клиентов и не захочет сначала их задавать, а затем добавлять их в политику каждый раз.

Один из способов, позволяющий использовать определенные IP-адреса, - это разрешить загрузку только с IP-адреса, связанного с (download.mysoftware.com), но тогда загрузка будет действительно происходить из моего веб-приложения, а не из S3. Это похоже на двойное усилие.

ответ

2

Когда пользователь делает запрос на загрузку приложения, сгенерируйте pre-signed URL для них с коротким сроком действия. Он должен быть действительным только до тех пор, пока он берет их до . Начало загружает ваш файл, поэтому даже нескольких минут действия, вероятно, будет много.

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

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