Signatur abgelaufen: jetzt ist früher als Fehler : InvalidSignatureException
Ich versuche ein kleines Beispiel mit AWS-API-Gateway-und IAM-Autorisierung. Die AWS-API-Gateway generiert die unten Endpunkt :
https://xyz1234.execute-api.us-east-2.amazonaws.com/Users/users
POST handeln und keine Parameter.
Zunächst hatte ich ausgeschaltet, die IAM für das POST-Methode, und ich habe überprüft Ergebnisse anhand der Postbote es funktioniert.
Dann erstellte ich eine neue IAM-Benutzer und die angeschlossenen AmazonAPIGatewayInvokeFullAccess-Richtlinie für den Benutzer somit die Berechtigung zum aufrufen beliebiger API. Aktiviert die IAM für die POST-Methode.
Dann ging ich zum Briefträger - und Hinzugefügt Autorisierung mit AccessKey, den Geheimen Schlüssel AWS-Region als us-east-2
- und Service-Namen als execute-api
und versucht, um die Anforderung auszuführen, aber ich habe InvalidSignatureException Fehler mit der Nummer 403 als return-code.
Des Körpers enthält folgende Meldung :
Signature expired: 20170517T062414Z is now earlier than 20170517T062840Z (20170517T063340Z - 5 min.)"
Was bin ich ?
- Hast du die Uhr und die Zeitzone korrekt auf die Maschine, wo Sie erzeugt die Signatur?
- Danke @Michael-sqlbot - versehentlich war die Zeit manuell eingestellt, auf die Maschine und war nicht auf dem standard der Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Antrag unterzeichnet, mit AWS sigV4 enthält einen Zeitstempel, Wann die Signatur erstellt wurde. Unterschriften sind nur gültig für eine kurze Zeit, nachdem Sie geschaffen werden. (Dies schränkt die Menge der Zeit, dass ein replay-Angriff versucht werden kann.)
Wenn die Signatur überprüft wird der Zeitstempel mit der aktuellen Zeit verglichen. Wenn dies bedeutet, dass die Signatur war nicht erst vor kurzem erstellt, dann die überprüfung der Signatur fehl mit der Fehlermeldung, die du erwähnt.
Eine häufige Ursache ist, wenn die lokale Uhr auf den Gastgeber der Erzeugung der Signatur ist um mehr als ein paar Minuten.
Müssen Sie synchronisieren Sie Ihre Maschinen, die lokale Uhr mit NTP.
zB. auf einer ubuntu-Maschine:
System Zeit-Synchronisation geht ganz oft. Sie brauchen, um in sync in regelmäßigen Abständen.
Führen Sie einen täglichen CRON-job zu halten Sie Ihr system Zeit in sync wie bereits erwähnt unter diesem link: In regelmäßigen Abständen synchronisieren der Zeit unter Linux
War ich auch vor diesem Problem Hinzugefügt
correctClockSkew: true
und Problem behoben, die für mich
Konfrontiert ähnliches Problem, wenn ich timedatectl Befehl zum ändern datetime des zugrunde liegenden Maschine... Erklärung von Mike D. & andere sind wirklich informativ, um das Problem zu beheben....
Nach der Synchronisierung der Zeit mit der richtigen aktuellen datetime, dieses Problem gelöst werden