Signieren von AWS API-Anforderungen - AWS Identitäts- und Zugriffsverwaltung

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.

Signieren von AWS API-Anforderungen

Wichtig

Wenn Sie ein - AWS SDKs (siehe Beispielcode und Bibliotheken) oder ein AWS Befehlszeilentool (CLI) verwenden, um API-Anfragen an zu senden AWS, können Sie diesen Abschnitt überspringen, da die SDK- und CLI-Clients Ihre Anfragen mithilfe der von Ihnen bereitgestellten Zugriffsschlüssel authentifizieren. Sofern Sie keinen guten Grund dagegen haben, empfiehlt es sich, stets ein SDK oder die CLI zu verwenden.

In Regionen, die mehrere Signaturversionen unterstützen, müssen Sie beim manuellen Signieren von Anfragen angeben, welche Signaturversion verwendet wird. Wenn Sie Anfragen an Multi-Region-Zugriffspunkte stellen, wechseln SDKs und die CLI ohne zusätzliche Konfiguration automatisch zur Verwendung der Signaturversion 4A.

Die Authentifizierungsinformationen, die Sie in einer Anfrage senden, müssen eine Signatur enthalten. Um eine Signatur zu berechnen, verketten Sie zunächst ausgewählte Anforderungselemente, um eine Zeichenfolge zu bilden, die als zu signierende Zeichenfolge bezeichnet wird. Anschließend verwenden Sie einen Signaturschlüssel, um den Hash-basierten Nachrichtenauthentifizierungscode (HMAC) der zu signierenden Zeichenfolge zu berechnen.

In AWS Signature Version 4 verwenden Sie Ihren geheimen Zugriffsschlüssel nicht, um die Anforderung zu signieren. Verwenden Sie stattdessen zunächst Ihren geheimen Zugriffsschlüssel, um einen Signierschlüssel abzuleiten. Der abgeleitete Signaturschlüssel ist spezifisch für Datum, Service und Region. Weitere Informationen zum Ableiten eines Signaturschlüssels in unterschiedlichen Programmiersprachen finden Sie unter Anfordern von Signaturbeispielen.

Signature Version 4 ist das AWS Signaturprotokoll. unterstützt AWS auch eine Erweiterung, Signature Version 4A, die Signaturen für API-Anforderungen mit mehreren Regionen unterstützt. Weitere Informationen finden Sie im sigv4a-signing-examples-Projekt auf GitHub.

Das folgende Diagramm veranschaulicht den allgemeinen Prozess der Berechnung einer Signatur.


            Ein Image der Elemente einer Signatur, einschließlich der zu signierenden Zeichenfolge, des Signierschlüssels und der berechneten Signatur.
  • Die zu signierende Zeichenfolge hängt von der Art der Anfrage ab. Wenn Sie beispielsweise den HTTP-Autorisierungsheader oder die Abfrageparameter für die Authentifizierung verwenden, verwenden Sie eine variierende Kombination von Anforderungselementen, um die zu signierende Zeichenfolge zu erstellen. Bei einer HTTP-POST-Anfrage ist die POST-Richtlinie in der Anfrage die von Ihnen signierte Zeichenfolge.

  • Für den Signaturschlüssel zeigt das Diagramm eine Reihe von Berechnungen, wobei das Ergebnis jedes Schritts in den nächsten Schritt einfließt. Der letzte Schritt ist der Signaturschlüssel.

  • Wenn ein - AWS Service eine authentifizierte Anforderung empfängt, erstellt er die Signatur mit den in der Anforderung enthaltenen Authentifizierungsinformationen neu. Wenn die Signaturen übereinstimmen, verarbeitet der Service die Anforderung. Andernfalls wird die Anforderung abgelehnt.

Wann müssen Anforderungen signiert werden?

Wenn Sie benutzerdefinierten Code schreiben, der API-Anforderungen an sendet AWS, müssen Sie Code einschließen, der die Anforderungen signiert. Möglicherweise schreiben Sie benutzerdefinierten Code, weil:

  • Sie arbeiten mit einer Programmiersprache, für die kein AWS SDK verfügbar ist.

  • Sie benötigen die vollständige Kontrolle darüber, wie Anfragen an gesendet werden AWS.

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 ein die Anforderung AWS-Service empfängt, verwendet er dieselben Informationen, um einen Hash zu berechnen und ihn mit dem Hash-Wert in Ihrer Anforderung abzugleichen. Wenn die Werte nicht übereinstimmen, AWS lehnt die Anforderung ab.

  • Schutz vor potenziellen Replay-Angriffen

    In den meisten Fällen muss eine Anforderung AWS innerhalb von fünf Minuten nach dem Zeitstempel in der Anforderung erreicht werden. Andernfalls AWS lehnt die Anforderung ab.