Как aws проверяет подписи, созданные с помощью ключей доступа?
Я много искал, и все страницы говорят о том, как подписать запрос с помощью ключей доступа aws. Но нигде я не нахожу, как aws проверяет эти подписи.
Например, этот официальный документ рассказывает о различных способах аутентификации, предоставляемых aws. В нем рассказывается о том, как aws использует открытый ключ пары ключей для проверки подписи. Но в нем ничего не говорится о том, как aws проверяет запросы, подписанные с использованием ключей доступа. https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html
Я нахожу ключи доступа aws очень запутанными. Любая помощь?
1 ответ
См. Подписание запросов API AWS
Отправляя запрос в AWS, вы отправляете:
- Запрос API с параметрами и т. Д.,
- Ваш ключ доступа (который начинается с АК....)
- Подпись, которая генерируется с использованием соответствующего
secret key
вашего ключа доступа
AWS проверяет подпись:
- Получает ваш секретный ключ для ключа доступа, переданного в запросе
- Подписывает ваш запрос и сравнивает его с подписью, которую вы указали
- Убедиться, что MIM не повторил запрос, проверив, что отметка времени запроса находится в течение 5 минут после подписания.
Чтобы предотвратить подделку запроса во время его передачи, некоторые элементы запроса используются для вычисления хеша (дайджеста) запроса, и полученное значение хеш-функции включается в состав запроса. Когда сервис AWS получает запрос, он использует ту же информацию для вычисления хеша и сопоставляет ее со значением хеша в вашем запросе. Если значения не совпадают, AWS отклоняет запрос.