При назначении URL-адреса не выдается ваш закрытый ключ (секретный), поэтому риска нет. Злоумышленник не может взять подписанный URL-адрес и изменить его, чтобы сделать что-то еще, так как подпись проверяет исходную полезную нагрузку.
Вы правы: считается хорошей практикой привязывать профили IAM к определенным задачам, таким какконкретная прикладная среда.
В соответствии с официальными документами AWS :
Мы настоятельно рекомендуем не использовать пользователя root для выполнения повседневных задач, дажеадминистративные. Вместо этого придерживайтесь наилучшей практики использования пользователя root только для создания своего первого пользователя IAM. Затем надежно заблокируйте учетные данные пользователя root и используйте их для выполнения только нескольких задач управления учетными записями и службами.
Ваш вопрос о недостатках мне не ясен, поэтому я отвечу на дваЯ думаю, вы могли бы это иметь в виду:
Индивидуальные профили IAM более root:
Нет недостатков. Требуется немного больше времени и знаний, чтобы спланировать свои требования к политике / разрешениям, но это хорошо.
Предварительно подписанные URL-адреса более обычные загрузки /Загрузок
Это зависит от вашего варианта использования. Вообще говоря, нет никаких дополнительных соображений безопасности при использовании предопределенных URL-адресов. Просто установите реалистичное время истечения и не передавайте его не тому человеку. Это очень похоже на жетон сеанса / носителя.
С точки зрения преимуществ, они открывают двери для того, чтобы сделать ваше приложение более масштабируемым, и устраняют необходимость в том, чтобы ваше приложение теряло циклы «просмотра» авторизованной загрузки или выгрузки. Vapor (Laravel 6 на Lambda) продвигает предварительно назначенные URL-адреса как функцию для загрузки файлов.