Как 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 отклоняет запрос.

Другие вопросы по тегам