Authentifizierungsmethoden
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.
Mit einer der folgenden Methoden können Sie Authentifizierungsinformationen ausdrücken.
HTTP-Autorisierungs-Header
Der HTTP-Authorization-Header ist die gängigste Methode zur Authentifizierung einer Anfrage. Alle REST-API-Vorgänge (außer browserbasierte Uploads mit POST-Anfragen) erfordern diesen Header.
Die folgenden Beispiele zeigen den Authorization-Header-Wert für SigV4 und SigV4a. Zur besseren Lesbarkeit werden diesem Beispiel Zeilenumbrüche hinzugefügt. In Ihrem Code muss der Header eine fortlaufende Zeichenfolge sein. Zwischen dem Algorithmus und den Anmeldeinformationen steht kein Komma, die anderen Elemente müssen jedoch durch Kommas getrennt werden.
Beispiel SigV4
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Beispiel SigV4a
Authorization: AWS4-ECDSA-P256-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/s3/aws4_request, SignedHeaders=host;range;x-amz-date;x-amz-region-set, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Die folgende Tabelle beschreibt die verschiedenen Komponenten des Werts des Autorisierungs-Headers aus dem vorangegangenen Beispiel:
| Komponente | Beschreibung |
|---|---|
|
Autorisierung |
Der Algorithmus, der zur Berechnung der Signatur verwendet wurde.
|
|
Credential |
Ihre Zugriffsschlüssel-ID und die Informationen zum Geltungsbereich.
Der Wert <date> wird im Format JJJJMMTT angegeben. Der Wert <aws-service> ist S3, wenn eine Anforderung an Amazon S3 gesendet wird. |
|
SignedHeaders |
Eine durch Semikolons getrennte Liste der Anforderungs-Header, die Sie zur Berechnung der Signatur verwendet haben. Die Liste enthält nur Header-Namen und die Header-Namen müssen in Kleinbuchstaben geschrieben sein. Beispiel: : Für SigV4a müssen Sie einen Regionssatz-Header angeben, der die Regionen festlegt, in denen die Anforderung gültig ist. Der Header „X-Amz-Region-Set“ wird als Liste von durch Kommas getrennten Werten angegeben. |
|
Signatur |
Die 256-Bit-Signatur, ausgedrückt als 64 hexadezimale Kleinbuchstaben. Zum Beispiel: Beachten Sie, dass die Signaturberechnungen je nach gewählter Option zur Übertragung der Nutzlast variieren. |
Parameter der Abfragezeichenfolge
Sie können eine Abfragezeichenfolge verwenden, um eine Anfrage vollständig in einer URL auszudrücken. In diesem Fall verwenden Sie Abfrageparameter, um Anforderungsinformationen bereitzustellen, einschließlich der Authentifizierungsinformationen. Da die Anforderungssignatur Teil der URL ist, wird diese Art von URL oft als vorsignierte URL bezeichnet. Sie können vorsignierte URLs verwenden, um anklickbare Links in HTML einzubetten, die bis zu sieben Tage gültig sein können. Weitere Informationen finden Sie unter Authentifizieren von Anforderungen: Verwenden von Abfrageparametern (AWS-Signatur Version 4) in der Amazon-S3-API-Referenz.
Die folgenden Beispiele zeigen vorab signierte URLs für SigV4 und SigV4a. Zur besseren Lesbarkeit werden diesem Beispiel Zeilenumbrüche hinzugefügt:
Beispiel SigV4
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/<region>/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
Beispiel SigV4a
http://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256 & X-Amz-Credential=<your-access-key-id>/20240721/s3/aws4_request & X-amz-Region-Set=<regionset> & X-Amz-Date=20240721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host;x-amz-region-set & X-Amz-Signature=<signature-value>
Anmerkung
Der X-Amz-Credential-Wert in der URL zeigt das Zeichen „/“ nur zur besseren Lesbarkeit an. In der Praxis sollte es als %2F codiert werden. Zum Beispiel:
&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request
Die folgende Tabelle beschreibt die Abfrageparameter in der URL, die Informationen zur Authentifizierung bereitstellen.
| Abfragezeichenfolgen-Parametername | Beschreibung |
|---|---|
|
X-Amz-Algorithm |
Die Version der AWS-Signatur und der Algorithmus, den Sie zur Berechnung der Signatur verwendet haben.
|
|
X-Amz-Credential |
Zusätzlich zu Ihrer Zugriffsschlüssel-ID gibt dieser Parameter auch den Geltungsbereich an, für den die Signatur gültig ist. Dieser Wert muss mit dem Gültigkeitsbereich übereinstimmen, den Sie für die Signaturberechnungen verwenden, die im folgenden Abschnitt beschrieben werden.
Eine Liste der regionalen AWS-Zeichenfolgen finden Sie unter Regionale Endpunkte in der Allgemeinen AWS-Referenz. |
|
X-Amz-Region-Set |
Die Gruppe von Regionen, in denen die Anforderung gültig sein wird. Der Header „x-amz-region-set“ wird als Liste von durch Kommas getrennten Werten angegeben. |
|
X-Amz-Datum |
Das Datums- und Uhrzeitformat muss dem ISO 8601-Standard entsprechen und im |
|
X-Amz-Expires |
Gibt den Zeitraum in Sekunden an, für den die generierte vorsignierte URL gültig ist. Zum Beispiel 86 400 (24 Stunden). Es handelt sich um einen Ganzzahlwert. Der Mindestwert, den Sie festlegen können, ist 1 und der Höchstwert 604 800 (sieben Tage). Eine vorsignierte URL kann maximal sieben Tage gültig sein, da der Signaturschlüssel, den Sie bei der Signaturberechnung verwenden, bis zu sieben Tage gültig ist. |
|
X-Amz-SignedHeaders |
Listet die Header auf, die Sie zur Berechnung der Signatur verwendet haben. Für die Signaturberechnungen sind folgende Header erforderlich:
Für zusätzliche Sicherheit sollten Sie alle Anforderungs-Header signieren, die Sie in Ihre Anfrage aufnehmen möchten. |
|
X-Amz-Signature |
Stellt die Signatur zur Authentifizierung Ihrer Anfrage bereit. Diese Signatur muss mit der vom Service berechneten Signatur übereinstimmen. Andernfalls lehnt der Service die Anfrage ab. Beispiel: , Signaturberechnungen werden im folgenden Abschnitt beschrieben. |
|
X-Amz-Security-Token |
Optionaler Parameter für Anmeldeinformationen, wenn Sie Anmeldeinformationen verwenden, die vom STS-Service stammen. |