Authentifizieren von Anfragen für Amazon SQS - Amazon Simple Queue Service

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.

Authentifizieren von Anfragen für Amazon SQS

Authentifizierung bezeichnet den Prozess der Identifizierung und Überprüfung des Absenders einer Anforderung. Während der ersten Phase der Authentifizierung überprüft AWS die Identität des Produzenten, und ob der Produzent für die Verwendung von AWS registriert ist (weitere Informationen finden Sie unter Schritt 1: Erstellen Sie einen AWS-Konto und IAM-Benutzer). Halten Sie sich AWS als Nächstes an das folgende Verfahren:

  1. Der Produzent (Absender) erhält die notwendigen Anmeldeinformationen.

  2. Der Produzent sendet eine Anforderung mit den Anmeldeinformationen an den Konsumenten (Empfänger).

  3. Der Konsument überprüft anhand der Anmeldeinformationen, ob der Produzent die Anforderung gesendet hat.

  4. Es tritt einer der beiden folgenden Fälle ein:

    • Wenn die Authentifizierung erfolgreich durchgeführt wurde, wird die Anforderung vom Konsumenten verarbeitet.

    • Wenn die Authentifizierung fehlschlägt, wird die Anforderung vom Verbraucher abgelehnt und es wird eine Fehlermeldung zurückgegeben.

Grundlegender Authentifizierungsprozess mit HMAC-SHA

Beim Zugriff auf Amazon SQS mit der Abfrage-API müssen Sie die folgenden Elemente angeben, um die Anforderung zu authentifizieren:

  • Die AWS Zugangsschlüssel-ID, mit der Sie AWS-Konto identifiziert werden und AWS anhand derer Ihr geheimer Zugriffsschlüssel nachgeschlagen wird.

  • Die HMAC-SHA-Anforderungssignatur, die anhand Ihres geheimen Zugriffsschlüssels (eines freigegebenen Schlüssels, der nur Ihnen und AWS bekannt ist) berechnet wird. Weitere Informationen finden Sie unter RFC2104. Das AWS -SDK übernimmt die Signatur. Wenn Sie jedoch eine Abfrageanforderung über HTTP oder HTTPS senden, müssen Sie in jede Abfrageanforderung eine Signatur einschließen.

    1. Ableiten eines Signature Version 4-Signaturschlüssels. Weitere Informationen finden Sie unter Ableiten des Signaturschlüssels mit Java.

      Anmerkung

      Amazon SQS unterstützt Signature Version 4, das gegenüber bisherigen Versionen verbesserte SHA256-basierte Sicherheit und Leistung bietet. Wenn Sie neue Anwendungen erstellen, die Amazon SQS nutzen, verwenden Sie Signature Version 4.

    2. Codieren Sie die Anforderungssignatur mit Base64. Das folgende Java-Codebeispiel führt folgende Schritte aus:

      package amazon.webservices.common; // Define common routines for encoding data in AWS requests. public class Encoding { /* Perform base64 encoding of input bytes. * rawData is the array of bytes to be encoded. * return is the base64-encoded string representation of rawData. */ public static String EncodeBase64(byte[] rawData) { return Base64.encodeBytes(rawData); } }
  • Der Zeitstempel (oder die Ablaufzeit) der Anforderung. Der Zeitstempel, den Sie in der Anforderung verwenden, muss ein dateTime-Objekt mit dem vollständigen Datum, einschließlich Stunden, Minuten und Sekunden, sein. Beispiel: 2007-01-31T23:59:59Z Obwohl dies nicht erforderlich ist, empfehlen wird, die Angabe des Objekts in der UTC-Zeitzone (Greenwich Mean Time).

    Anmerkung

    Stellen Sie sicher, dass Ihre Serverzeit richtig eingestellt ist. Wenn Sie einen Zeitstempel (statt eines Ablaufs) angeben, läuft die Anfrage automatisch 15 Minuten nach der angegebenen Zeit ab (Anfragen, deren Zeitstempel mehr als 15 Minuten vor der aktuellen Uhrzeit auf AWS Servern liegen, werden AWS nicht verarbeitet).

    Falls Sie .NET verwenden, dürfen Sie keine extrem spezifischen Zeitstempel senden (da unterschiedlich interpretiert wird, nach welchem Zeitraum die Anforderung verworfen werden sollte). In diesem Fall sollten Sie manuell dateTime-Objekte mit einer Genauigkeit von nicht mehr als einer Millisekunde erstellen.

Teil 1: Die Anforderung von dem Benutzer

Gehen Sie wie folgt vor, um AWS Anfragen mithilfe einer HMAC-SHA-Anforderungssignatur zu authentifizieren.

Diagramm, das die Anfrage des Benutzers beschreibt.
  1. Konstruieren Sie eine Anfrage an AWS.

  2. Berechnen Sie eine verschlüsselte Hash-Signatur (HMAC-SHA) für die Nachrichtenauthentifizierung anhand des geheimen Zugriffsschlüssels.

  3. Fügen Sie die Signatur und Ihre Zugriffsschlüssel-ID in die Anfrage ein und senden Sie die Anfrage dann an AWS.

Teil 2: Die Antwort von AWS

AWS startet als Antwort den folgenden Prozess.

Diagramm, das die Antwort von beschreibt AWS.
  1. AWS verwendet die Zugriffsschlüssel-ID, um nach Ihrem geheimen Zugriffsschlüssel zu suchen.

  2. AWS generiert eine Signatur aus den Anforderungsdaten und dem geheimen Zugriffsschlüssel und verwendet dabei denselben Algorithmus, den Sie zur Berechnung der Signatur verwendet haben, die Sie in der Anfrage gesendet haben.

  3. Es tritt einer der beiden folgenden Fälle ein:

    • Wenn die AWS generierte Signatur mit der Signatur übereinstimmt, die Sie in der Anfrage gesendet haben, wird die Anfrage als authentisch AWS betrachtet.

    • Schlägt der Vergleich fehl, wird die Anfrage verworfen und es wird ein Fehler AWS zurückgegeben.