AWS API-Anfragen signieren - 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.

AWS API-Anfragen signieren

Wichtig

Wenn Sie ein AWS SDKs (siehe Beispielcode und Bibliotheken) oder ein AWS Befehlszeilentool (CLI) zum Senden von API-Anfragen verwenden AWS, können Sie diesen Abschnitt überspringen, da das SDK und die 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 Anfrage 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. AWS unterstützt auch eine Erweiterung, Signature Version 4A, die Signaturen für API-Anfragen mit mehreren Regionen unterstützt. Weitere Informationen finden Sie im a-signing-examplesSigv4-Projekt unter. 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 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.

Wann müssen Anforderungen signiert werden?

Wenn Sie benutzerdefinierten Code schreiben, an den API-Anfragen gesendet werden 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 kein AWS SDK verfügbar ist.

  • Sie benötigen die vollständige Kontrolle darüber, an welche Empfänger Anfragen 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 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.