Как я могу истечь сгенерированной ссылкой для скачивания на S3

Я знаю, что мы можем сгенерировать ключ загрузки для объекта с определенным сроком действия. Но как я могу аннулировать уже сгенерированный ключ вручную?

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


person meshkati    schedule 02.06.2019    source источник


Ответы (1)


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

Предварительно подписанный URL-адрес использует учетные данные из ключа доступа, у которого есть разрешение на доступ к объекту. Затем URL-адрес подписывается хешированной версией секретного ключа для проверки запроса. Это фактически говорит: «Я одобряю этот запрос до этой временной метки».

Невозможно аннулировать предварительно подписанный URL-адрес. Однако, поскольку утверждение связано с удостоверением, вы можете аннулировать разрешения этого удостоверения на доступ к объекту, и это приведет к аннулированию предварительно подписанного URL-адреса. Это фактически говорит: «Хорошо, что вы разрешаете запрос, но вы больше не авторизованы для доступа к нему сами, поэтому вы также не можете авторизовать кого-либо еще!»

Пример:

  • Пользователь IAM User-A имеет разрешение на доступ к частному объекту
  • User-A генерирует предварительно подписанный URL-адрес для объекта
  • Предварительно подписанный URL работает
  • Разрешение отозвано у User-A, так что у него больше нет разрешения на доступ к объекту
  • Предварительно подписанный URL больше не работает

Это не обязательно хорошо работает для вашего варианта использования «загрузить только один раз». Для этого вам действительно нужно будет отправлять запросы и загрузки через приложение, а не полагаться на Amazon S3 для обеспечения соблюдения правила «только один раз».

person John Rotenstein    schedule 02.06.2019