Политика корзины S3 через конкретное приложение

#security #amazon-web-services #amazon-s3 #s3-bucket

#Безопасность #amazon-веб-сервисы #amazon-s3 #s3-ведро #s3-корзина

Вопрос:

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

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

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

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

Ответ №1:

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

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