Что произойдет, если вы находитесь в середине процесса, когда время ожидания AWSAssumeRole истекает?
В настоящее время я работаю с ролью, которую мне нужно взять на себя для доступа к определенным сегментам на S3.
Мне было интересно, если продолжительность, предоставленная STSAssumeRoleSessiomCredentialsProvider, составляет 1 час, а вы делаете что-то вроде загрузки файла, который занимает 1,5 часа, завершает ли процесс процесс или останавливается посередине, потому что продолжительность закончилась?
2 ответа
Достоверность учетных данных проверяется при инициировании запроса. После успешного запуска ответ будет отправлен полностью. В вашем примере загрузки, если учетные данные были действительными при инициировании запроса на загрузку, этого достаточно для полной загрузки файла.
Истечение срока действия учетных данных STS - это проблема, когда к AWS выполняются повторные подключения в рамках длительной программы, и программа считывает учетные данные в начале и сохраняет их. Обычно рекомендуется отделить процесс получения учетных данных sts от пользователей этих учетных данных, и пользователи должны гарантировать, что учетные данные всегда считываются при изменении базового источника учетных данных (обычно файла).
Эти аспекты обрабатываются AWS Java SDK's ProfileCredentialsProvider
класс автоматически. Не уверен, существует ли аналогичный модуль и в других языковых привязках.
Учетные данные проверяются при представлении в вызове API. Если вы выполните вызовы API до истечения срока действия учетных данных, тогда все в порядке.
Однако, если вам нужно выполнить несколько вызовов API, и один из них превышает время истечения срока действия, этот вызов завершится ошибкой.
Это особенно актуально для многочастных загрузок S3, каждая часть которых представляет собой отдельный вызов API и каждый раз предоставляет учетные данные. Решение этой проблемы обычно одно из:
- получить учетные данные, которые действительны достаточно долго для завершения операции
- обновите учетные данные, когда срок действия истекает, и используйте новые учетные данные для последующих загрузок частей