AWS Signaturversion 4 für API Anfragen - 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 Signaturversion 4 für API Anfragen

Wichtig

Wenn Sie ein AWS SDK (siehe Beispielcode und Bibliotheken) oder AWS Command Line Interface (AWS CLI) Tool zum Senden von API Anfragen verwenden AWS, können Sie den Signaturvorgang überspringen, da die SDK CLI AND-Clients Ihre Anfragen mithilfe der von Ihnen bereitgestellten Zugriffsschlüssel authentifizieren. Sofern Sie keinen guten Grund haben, dies nicht zu tun, empfehlen wir Ihnen, immer ein SDK oder das CLI zu verwenden.

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:

  1. Erstellen einer kanonischen Anfrage auf der Grundlage der Anforderungsdetails.

  2. Berechnung einer Signatur anhand Ihrer AWS Anmeldeinformationen.

  3. 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 unter. GitHub

Wie funktioniert AWS SigV4

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.
  1. 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.

  2. 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.

  3. 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