Verwenden der Abfrage API - Amazon MemoryDB

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.

Verwenden der Abfrage API

Abfrageparameter

HTTPAbfragebasierte Anfragen sind HTTP Anfragen, die das HTTP Verb GET oder POST und einen Abfrageparameter mit dem Namen verwenden. Action

Jede Query-Anfrage muss einige allgemeine Parameter enthalten, um die Authentifizierung und Auswahl einer Aktion zu bearbeiten.

Einige Operationen verwenden Parameterlisten. Diese Listen werden mit der Notation param.n definiert. Werte von n sind ganze Zahlen, die bei 1 beginnen.

Authentifizierung von Abfrageanforderungen

Sie können nur Query-Anfragen senden HTTPS und müssen in jeder Query-Anfrage eine Signatur einschließen. In diesem Abschnitt wird beschrieben, wie Sie die Signatur erstellen. Die in den folgenden Schritten beschriebene Methode wird als Signaturversion 4 bezeichnet.

Die folgenden grundlegenden Schritte dienen der Authentifizierung von Anfragen an AWS. Dies setzt voraus, dass Sie registriert sind AWS und über eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel verfügen.

Abfrageauthentifizierungsprozess
  1. Der Absender erstellt eine Anfrage an AWS.

  2. Der Absender berechnet die Anforderungssignatur, ein Keyed-Hashing for Hash-based Message Authentication Code (HMAC) mit einer Hash-Funktion von SHA -1, wie im nächsten Abschnitt dieses Themas definiert.

  3. Der Absender der Anfrage sendet die Anforderungsdaten, die Signatur und die Zugriffsschlüssel-ID (die Schlüssel-ID des verwendeten geheimen Zugriffsschlüssels) an. AWS

  4. AWS verwendet die Zugriffsschlüssel-ID, um den geheimen Zugriffsschlüssel nachzuschlagen.

  5. AWS generiert eine Signatur aus den Anforderungsdaten und dem geheimen Zugriffsschlüssel unter Verwendung desselben Algorithmus, der zur Berechnung der Signatur in der Anfrage verwendet wurde.

  6. Wenn die Signaturen übereinstimmen, wird die Anforderung als authentisch betrachtet. Falls der Vergleich fehlschlägt, wird die Anforderung verworfen, und AWS gibt eine Fehlerantwort zurück.

Anmerkung

Wenn eine Anforderung einen Timestamp-Parameter enthält, läuft die für die Anforderung berechnete Signatur 15 Minuten nach dessen Wert ab.

Wenn eine Anforderung einen Expires-Parameter enthält, läuft die Signatur an dem durch den Expires-Parameter angegebenen Zeitpunkt ab.

So wird die Anfragesignatur berechnet
  1. Erstellen Sie eine vereinheitlichte Abfragezeichenfolge, die Sie später bei dieser Prozedur benötigen:

    1. Sortiert die Komponenten der Abfragezeichenfolge UTF -8 nach dem Parameternamen mit natürlicher Bytereihenfolge. Die Parameter können aus dem GET URI oder aus dem POST Hauptteil stammen (wenn Content-Type Application/ ist). x-www-form-urlencoded

    2. URLkodieren Sie den Namen und die Werte des Parameters gemäß den folgenden Regeln:

      1. URLKodieren Sie keines der nicht reservierten Zeichen, RFC die 3986 definiert. Folgende Zeichen sind nicht reserviert: A – Z, a – z, 0 – 9, Bindestrich ( - ), Unterstrich ( _ ), Punkt ( .

      2. Versehen Sie alle anderen Zeichen mit Prozentcode (%XY), wobei X und Y für Hexadezimalzeichen, d. h. 0-9 und die Großbuchstaben A-F, steht.

      3. Prozent kodieren erweiterte UTF -8 Zeichen in der Form %XY%ZA...

      4. Versehen Sie das Leerzeichen mit dem Prozentcode %20 (und nicht + wie in herkömmlichen Codierungsschemata).

    3. Trennen Sie die kodierten Parameternamen mit dem Gleichheitszeichen (=) (ASCIIZeichen 61) von ihren codierten Werten, auch wenn der Parameterwert leer ist.

    4. Trennen Sie die Name-Wert-Paare durch ein Und-Zeichen (&) (Code 38). ASCII

  2. Erstellen Sie die zu signierende Zeichenfolge gemäß der folgenden Pseudogrammatik (das "\n" steht für einen Zeilenumbruch). ASCII

    StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>

    Bei der HTTPRequestURI Komponente handelt es sich um die HTTP absolute Pfadkomponente der URI Abfragezeichenfolge, die bis zu, aber nicht einschließt. Wenn der leer HTTPRequestURI ist, verwenden Sie einen Schrägstrich (/).

  3. Berechne ein RFC 2104-konformes Ergebnis HMAC mit der gerade erstellten Zeichenfolge, deinem Secret Access Key als Schlüssel SHA256 und/oder SHA1 als Hash-Algorithmus.

    Weitere Informationen finden Sie unter https://www.ietf. org/rfc/rfc2104.txt.

  4. Konvertieren Sie den resultierenden Wert zu base64.

  5. Schließen Sie den Wert als Wert des Signature-Parameters in die Anforderung ein.

Das folgende Beispiel zeigt eine Anforderung (die Zeilenumbrüche wurden aus Gründen der Übersichtlichkeit hinzugefügt).

https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01

Für die vorherige Abfragezeichenfolge würden Sie die HMAC Signatur anhand der folgenden Zeichenfolge berechnen.

GET\n memory-db.amazonaws.com\n Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-east-1%2Fmemorydb%2Faws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:memory-db.us-east-1.amazonaws.com user-agent:ServicesAPICommand_Client x-amz-content-sha256: x-amz-date:

Das Ergebnis ist die folgende signierte Anforderung.

https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-east-1/memorydb/aws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56

Ausführliche Informationen zum Signiervorgang und zur Berechnung der Anforderungssignatur finden Sie im Thema Signaturprozess von Signature Version 4 und den zugehörigen Unterthemen.