Elemente einer AWS-API-Anforderungssignatur
Wichtig
Sofern Sie nicht die AWS-SDKs oder die CLI verwenden, müssen Sie Code schreiben, um Signaturen zu berechnen, die Authentifizierungsinformationen in Ihren Anfragen bereitstellen. Die Signaturberechnung in AWS-Signatur Version 4 kann ein komplexes Unterfangen sein, und es empfiehlt sich, wann immer möglich die AWS-SDKs oder CLI zu verwenden.
Jede HTTP/HTTPS-Anforderung, die Signature Version 4 verwendet, muss diese Elemente enthalten.
Endpunktspezifizierung
Gibt den DNS-Namen des Endpunkts an, an den Sie die Anforderung senden. Dieser Name enthält normalerweise den Servicecode und die Region. Der Endpunkt für Amazon DynamoDB in der us-east-1
-Region ist beispielsweise dynamodb.us-east-1.amazonaws.com
.
Für HTTP/1.1-Anforderungen müssen Sie den Host
-Header einfügen. Für HTTP/2-Anforderungen können Sie den :authority
-Header oder den Host
-Header einfügen. Wenn die Anforderung der HTTP/2-Spezifikation entsprechen soll, verwenden Sie nur den :authority
-Header. Nicht alle Services unterstützen HTTP/2-Anforderungen.
Informationen zu den Endpunkten, die von den einzelnen Services unterstützt werden, finden Sie unter Service-Endpunkte und Kontingente in der Allgemeine AWS-Referenz.
Aktion
Gibt eine API-Aktion für den Service an. Zum Beispiel die DynamoDB CreateTable
-Aktion oder die Amazon-EC2 DescribeInstances
-Aktion.
Informationen zu den Aktionen, die von den einzelnen Services unterstützt werden, finden Sie in der Service-Autorisierungsreferenz.
Aktionsparameter
Gibt die Parameter für die in der Anforderung angegebene Aktion an. Jede AWS-API-Aktion verfügt über eine Reihe erforderlicher und optionaler Parameter. Die API-Version ist in der Regel ein erforderlicher Parameter.
Informationen zu den von einer API-Aktion unterstützten Parametern finden Sie in der API-Referenz für den Service.
Datum
Gibt das Datum und die Uhrzeit der Anforderung an. Indem Sie der Anforderung Uhrzeit und Datum hinzufügen, können Sie verhindern, das Dritte Ihre Anforderung abfangen und zu einem späteren Zeitpunkt erneut hochladen. Das Datum, das Sie im Umfang der Anmeldeinformationen angeben, muss mit dem Datum Ihrer Anforderung übereinstimmen.
Der Zeitstempel muss in UTC angegeben werden und das folgende ISO-8601-Format verwenden: JJJJMMDDTHHMMSSZ. Zum Beispiel 20220830T123600Z
. Geben Sie im Zeitstempel keine Millisekunden an.
Sie können ein date
oder einen x-amz-date
-Header verwenden oder x-amz-date
als Abfrageparameter einfügen. Wenn wir keinen x-amz-date
-Header finden können, suchen wir nach einem date
-Header.
Authentifizierungsinformationen
Jede Anforderung, die Sie senden, muss die folgenden Informationen enthalten. AWS verwendet diese Informationen, um die Gültigkeit und Authentizität der Anforderung sicherzustellen.
-
Algorithmus – Verwenden Sie
AWS4-HMAC-SHA256
, um Signature Version 4 mit demHMAC-SHA256
-Hash-Algorithmus anzugeben. -
Anmeldeinformationen – Eine Zeichenfolge, die aus Ihrer Zugriffsschlüssel-ID, dem Datum im Format JJJJMMTT, dem Regionscode, dem Servicecode und der durch Schrägstriche (/) getrennte
aws4_request
-Abschlusszeichenfolge besteht. Für den Regionscode, den Servicecode und die Abschlusszeichenfolge müssen Kleinbuchstaben verwendet werden.AKIAIOSFODNN7EXAMPLE
/YYYYMMDD
/region
/service
/aws4_request -
Signierte Header – Die HTTP-Header, die in die Signatur aufgenommen werden sollen, getrennt durch Semikolons (;). Zum Beispiel
host;x-amz-date
. -
Signatur – Eine hexadezimalkodierte Zeichenfolge, die die berechnete Signatur darstellt. Sie müssen die Signatur mit dem Algorithmus berechnen, den Sie im
Algorithm
-Parameter angegeben haben.
Weitere Informationen finden Sie unter Authentifizierungsmethoden