Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS Signaturversion 4 für API Anfragen
Wichtig
Wenn Sie ein AWS SDK (siehe Beispielcode und Bibliotheken
In Regionen, die mehrere Signaturversionen unterstützen, bedeutet das manuelle Signieren von Anfragen, dass Sie angeben müssen, welche Signaturversion verwendet werden soll. Wenn Sie Anfragen an Access Points mit mehreren Regionen bereitstellen SDKs und dann CLI automatisch ohne zusätzliche Konfiguration zur Verwendung von Signature Version 4A wechseln.
Die Authentifizierungsinformationen, die Sie in einer Anfrage senden, müssen eine Signatur enthalten. AWS Signature Version 4 (Sigv4) ist das AWS Signaturprotokoll zum Hinzufügen von Authentifizierungsinformationen zu AWS API Anfragen.
Sie verwenden Ihren geheimen Zugriffsschlüssel nicht, um API Anfragen zu signieren. Stattdessen verwenden Sie den SigV4-Signaturprozess. Das Signieren von Anfragen beinhaltet:
-
Erstellen einer kanonischen Anfrage auf der Grundlage der Anforderungsdetails.
-
Berechnung einer Signatur anhand Ihrer AWS Anmeldeinformationen.
-
Hinzufügen dieser Signatur zur Anfrage als Autorisierungsheader.
AWS repliziert dann diesen Prozess und verifiziert die Signatur, wobei der Zugriff entsprechend gewährt oder verweigert wird.
Anmerkung
AWS unterstützt auch eine Erweiterung, Signature Version 4A, die Signaturen für Anfragen aus mehreren Regionen unterstützt. API Weitere Informationen finden Sie im a-signing-examplesSigv4-Projekt
Wie funktioniert AWS SigV4
Das folgende Diagramm veranschaulicht den allgemeinen Prozess der Berechnung einer Signatur:
-
Die zu signierende Zeichenfolge hängt von der Art der Anfrage ab. Wenn Sie beispielsweise den HTTP Authorization-Header oder die Abfrageparameter für die Authentifizierung verwenden, verwenden Sie eine Kombination von Anforderungselementen, um die zu signierende Zeichenfolge zu erstellen. Bei einer HTTP POST Anfrage ist die
POST
Richtlinie in der Anfrage die Zeichenfolge, die Sie signieren. -
Der Signaturschlüssel besteht aus einer Reihe von Berechnungen, wobei das Ergebnis jedes Schritts in den nächsten einfließen wird. Der letzte Schritt ist der Signaturschlüssel.
-
Wenn ein AWS Dienst eine authentifizierte Anfrage empfängt, erstellt er die Signatur anhand der in der Anfrage enthaltenen Authentifizierungsinformationen neu. Wenn die Signaturen übereinstimmen, verarbeitet der Service die Anforderung. Andernfalls wird die Anforderung abgelehnt.
Weitere Informationen finden Sie unter Elemente einer AWS API Anforderungssignatur.
Wann müssen Anforderungen signiert werden?
Wenn Sie benutzerdefinierten Code schreiben, der API Anfragen an sendet AWS, müssen Sie Code angeben, der die Anfragen signiert. Möglicherweise schreiben Sie benutzerdefinierten Code, weil:
-
Sie arbeiten mit einer Programmiersprache, für die es keine gibt AWS SDK.
-
Sie benötigen die vollständige Kontrolle darüber, an welche Anfragen gesendet werden AWS.
APIAnfragen authentifizieren zwar den Zugriff mit AWS Sigv4, AWS SDKs und dann AWS CLI authentifizieren Sie Ihre Anfragen mithilfe der von Ihnen bereitgestellten Zugriffsschlüssel. Weitere Hinweise zur Authentifizierung mit AWS SDKs und dem finden Sie unter. AWS CLIWeitere Ressourcen
Warum werden Anforderungen signiert?
Das Signieren erhöht die Sicherheit der Anforderungen, und zwar auf folgende Weise:
-
Überprüfung der Identität des Anforderers
Für authentifizierte Anfragen ist eine Signatur erforderlich, die Sie mithilfe Ihrer Zugriffsschlüssel (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel) erstellen. Wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, ist für die Signaturberechnungen auch ein Sicherheitstoken erforderlich. Weitere Informationen finden Sie unter programmgesteuerter Zugriff auf AWS -Sicherheitsanmeldeinformationen.
-
Schutz der Daten während der Übertragung
Um zu verhindern, dass eine Anforderung während der Übertragung manipuliert wird, werden einige ihrer Elemente verwendet, um einen Hash-Wert (Digest) der Anforderung zu berechnen. Der daraus resultierende Hash-Wert wird in die Anforderung aufgenommen. Wenn an die Anfrage AWS -Service empfängt, verwendet es dieselben Informationen, um einen Hash zu berechnen, und vergleicht ihn mit dem Hashwert in Ihrer Anfrage. Wenn die Werte nicht übereinstimmen, wird die AWS Anfrage abgelehnt.
-
Schutz vor potenziellen Replay-Angriffen
In den meisten Fällen muss eine Anfrage AWS innerhalb von fünf Minuten nach dem Zeitstempel in der Anfrage eingehen. Andernfalls wird die AWS Anfrage abgelehnt.
AWS SigV4 kann im HTTP Authorization-Header oder als Abfragezeichenfolge in der ausgedrückt werden. URL Weitere Informationen finden Sie unter Authentifizierungsmethoden.
Weitere Ressourcen
-
Weitere Hinweise zum SigV4-Signaturprozess für verschiedene Dienste finden Sie unter. Anfordern von Signaturbeispielen
-
Informationen zur Konfiguration der Anmeldeinformationen für den AWS CLI programmatischen Zugriff auf finden Sie unter Authentifizierungs- und Zugriffsanmeldeinformationen im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle.
-
Sie AWS SDKs enthalten Quellcode GitHub zum Signieren von AWS API Anfragen. Codebeispiele finden Sie unter Beispielprojekte im AWS Beispiel-Repository.
-
AWS SDK for .NET — AWS4Signer.cs
-
AWS SDK for C++ — .cpp AWSAuthV4Signer
-
AWS SDK for Go — v4.go
-
AWS SDK for Java — 4Signer.java BaseAws
-
AWS SDK for JavaScript — v4.js
-
AWS SDK for PHP — SignatureV4.php
-
AWS SDK for Python (Boto) — signers.py
-
AWS SDK for Ruby — signer.rb
-