Verwenden der Abfrage-API - Amazon ElastiCache (RedisOSS)

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

HTTP-Query-basierte Anfragen sind HTTP-Anfragen, die das HTTP-Verb GET oder POST und einen Query-Parameter namens verwende 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 Ganzzahlen ab 1.

Authentifizierung von Abfrageanforderungen

Sie können Abfrageanforderungen nur über HTTPS senden und müssen in jede Abfrageanforderung 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. Dieser Vorgang setzt voraus, dass Sie bei AWS registriert sind und eine Zugriffsschlüssel-ID sowie einen geheimen Zugriffsschlüssel besitzen.

Abfrageauthentifizierungsprozess
  1. Der Sender erstellt eine Anforderung an AWS.

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

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

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

  5. AWS erstellt anhand der Anforderungsdaten und des geheimen Zugriffsschlüssels eine Signatur und verwendet dabei denselben Algorithmus, den Sie zum Berechnen der Signatur in der Anforderung verwendet haben.

  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. Sortieren Sie die UTF-8-Abfragezeichenkomponenten nach Parameternamen in natürlicher Bytereihenfolge. Die Parameter können von einer GET-URI oder von einem POST-Test stammen (wenn Content-Type = application/x-www-form-urlencoded).

    2. Führen Sie eine URL-Codierung des Parameternamens und -werts nach folgenden Regeln durch:

      1. Führen Sie keine URL-Codierung der nicht reservierten, von RFC 3986 definierten Zeichen durch. 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. Versehen Sie alle erweiterten UTF-8-Zeichen mit Prozentcode im Format %XY%ZA....

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

    3. Trennen Sie die codierten Parameternamen mit dem Gleichzeichen ( = ) (ASCII-Zeichen 61) von den zugehörigen codierten Werten, auch wenn der Parameterwert leer ist.

    4. Trennen Sie diese Namen-Wert-Paare durch ein kaufmännisches Und (&) (ASCII-Code 38).

  2. Erstellen Sie die Zeichenfolge für die Signatur anhand der folgenden Pseudogrammatik (das "\n" steht in ASCII für eine neue Zeile).

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

    Die HTTPRequestURI-Komponente ist die absolute HTTP-Pfadkomponente des URI bis zur, jedoch nicht einschließlich der Zeichenfolge. Falls HTTPRequestURI leer ist, verwenden Sie den Schrägstrich ( / ).

  3. Berechnen Sie eine RFC 2104-kompatible HMAC-Signatur, wobei Sie die soeben erstellte Zeichenfolge, den geheimen Zugriffsschlüssel als Schlüssel und SHA256 oder SHA1 als Hashalgorithmus verwenden.

    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://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01

Für die vorangehende Abfragezeichenfolge berechnen Sie die HMAC-Signatur über die folgende Zeichenfolge.

GET\n elasticache.amazonaws.com\n Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-west-2%2Felasticache%2Faws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:elasticache.us-west-2.amazonaws.com user-agent:CacheServicesAPICommand_Client x-amz-content-sha256: x-amz-date:

Das Ergebnis ist die folgende signierte Anforderung.

https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-west-2/elasticache/aws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56

Ausführliche Informationen über das Signieren und Berechnen der Anforderungssignatur finden Sie im Thema Signaturprozess mit Signature Version 4 und in den entsprechenden Unterthemen.