View a markdown version of this page

Verwenden der Abfrage-API - Amazon ElastiCache

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

Query-based HTTP-Anfragen sind HTTP-Anfragen, die das HTTP-Verb GET oder POST und einen Query-Parameter mit dem Namen verwendenAction.

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. Die Werte von n sind ganze Zahlen, die bei 1 beginnen.

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. 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, eine Keyed-Hashing für Hash-based Message Authentication Code (HMAC) mit einer SHA-1 Hash-Funktion, wie im nächsten Abschnitt dieses Themas definiert.

  3. Der Absender der Anfrage sendet die Anforderungsdaten, die Signatur und die Access Key ID (die Schlüssel-ID des verwendeten Secret Access Keys) 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 UTF-8 Abfragezeichenfolge nach Parameternamen mit natürlicher Bytereihenfolge. Die Parameter können aus der GET-URI oder aus dem POST-Hauptteil stammen (wenn Content-Type application/x -www-form-urlencoded ist).

    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. Diese nicht reservierten Zeichen sind a-z A-Z, 0-9, Bindestrich (-), Unterstrich (_), Punkt (.) und Tilde (~).

      2. Prozent kodieren alle anderen Zeichen mit %XY, wobei X und Y Hexadezimalzeichen 0-9 und Großbuchstaben sind. A-F

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