Auswählen einer API-Schlüsselquelle - Amazon API Gateway

Auswählen einer API-Schlüsselquelle

Wenn Sie einen Nutzungsplan einer API zuordnen und API-Schlüssel bei API-Methoden aktivieren, muss jede eingehende API-Anfrage einen API-Schlüssel enthalten. API Gateway liest den Schlüssel und vergleicht ihn mit den Schlüsseln im Nutzungsplan. Wenn die Schlüssel übereinstimmen, werden die Anforderungen entsprechend der Anforderungslimits und des Kontingents des Plans von API Gateway gedrosselt. Andernfalls wird eine InvalidKeyParameter-Ausnahme ausgelöst. Dadurch erhält der Aufrufer eine 403 Forbidden-Antwort.

Ihre API Gateway-API kann API-Schlüssel aus einer von zwei Quellen erhalten:

HEADER

Sie verteilen API-Schlüssel an Ihre Kunden und erfordern die Übermittlung des API-Schlüssels als X-API-Key-Header bei jeder eingehenden Anforderung.

AUTHORIZER

Sie lassen einen Lambda-Genehmiger den API-Schlüssel im Rahmen der Autorisierungsantwort zurückgeben. Weitere Informationen zur Autorisierungsantwort finden Sie unter Ausgabe von einem Amazon API Gateway-Lambda-Genehmiger.

Anmerkung

Zu berücksichtigende bewährte Methoden finden Sie unter Bewährte Methoden für API-Schlüssel und Nutzungspläne.

So wählen Sie eine API-Schlüsselquelle für eine API über die API Gateway-Konsole aus:
  1. Melden Sie sich bei der API Gateway-Konsole an.

  2. Wählen Sie eine vorhandene API oder erstellen Sie eine neue.

  3. Wählen Sie im primären Navigationsbereich Settings unter der ausgewählten oder neu erstellten API aus.

  4. Wählen Sie im Abschnitt API Key Source im Bereich Settings aus der Dropdown-Liste HEADER oder AUTHORIZER aus.

  5. Wählen Sie Save Changes.

Wenn Sie eine API-Schlüsselquelle für eine API über die AWS CLI auswählen möchten, rufen Sie wie folgt den Befehl update-rest-api auf:

aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER

Damit der Client einen API-Schlüssel sendet, legen Sie den value im vorherigen CLI-Befehl auf HEADER fest.

Wenn Sie eine API-Schlüsselquelle für eine API über die API Gateway-REST-API auswählen möchten, rufen Sie wie folgt restapi:update auf:

PATCH /restapis/fugvjdxtri/ HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T205348Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash} { "patchOperations" : [ { "op" : "replace", "path" : "/apiKeySource", "value" : "HEADER" } ] }

Damit ein Genehmiger einen API-Schlüssel zurückgibt, legen Sie den value in der vorherigen AUTHORIZER-Eingabe auf patchOperations fest.

Abhängig von dem von Ihnen gewählten API-Schlüsselquelltyp verwenden Sie eines der folgenden Verfahren für die Verwendung eines Header-bezogenen API-Schlüssels oder eines vom Genehmiger zurückgegebenen API-Schlüssels für einen Methodenaufruf:

Um Header-bezogene API-Schlüssel zu verwenden:
  1. Erstellen Sie eine API mit den gewünschten API-Methoden. Und stellen Sie die API für eine Stufe bereit.

  2. Erstellen Sie einen neuen Nutzungsplan oder wählen Sie einen bereits vorhandenen Plan aus. Fügen Sie die bereitgestellte API-Stufe dem Nutzungsplan hinzu. Ordnen Sie dem Nutzungsplan einen API-Schlüssel hinzu oder wählen Sie einen im Plan vorhandenen API-Schlüssel. Notieren Sie den ausgewählten API-Schlüsselwert.

  3. Richten Sie API-Methoden ein, um einen API-Schlüssel zu fordern.

  4. Stellen Sie die API derselben Stufe bereit. Wenn Sie die API einer neuen Stufe bereitstellen, stellen Sie sicher, dass Sie den Nutzungsplan aktualisieren, um ihn der neuen API-Stufe zuzuordnen.

Der Client kann nun die API-Methoden aufrufen, während er den x-api-key-Header mit dem gewählten API-Schlüssel als Header-Wert bereitstellt.

Um Genehmiger-bezogene API-Schlüssel zu verwenden:
  1. Erstellen Sie eine API mit den gewünschten API-Methoden. Und stellen Sie die API für eine Stufe bereit.

  2. Erstellen Sie einen neuen Nutzungsplan oder wählen Sie einen bereits vorhandenen Plan aus. Fügen Sie die bereitgestellte API-Stufe dem Nutzungsplan hinzu. Ordnen Sie dem Nutzungsplan einen API-Schlüssel hinzu oder wählen Sie einen im Plan vorhandenen API-Schlüssel. Notieren Sie den ausgewählten API-Schlüsselwert.

  3. Erstellen Sie einen benutzerdefinierten Lambda-Genehmiger des Tokentyps. Nehmen Sie usageIdentifierKey:{api-key} als Stammebeneneigenschaft der Autorisierungsantwort auf, wobei {api-key} für den im vorigen Schritt erwähnten API-Schlüsselwert steht.

  4. Richten Sie API-Methoden ein, um einen API-Schlüssel zu fordern, und aktivieren Sie den Lambda-Genehmiger für die Methoden.

  5. Stellen Sie die API derselben Stufe bereit. Wenn Sie die API einer neuen Stufe bereitstellen, stellen Sie sicher, dass Sie den Nutzungsplan aktualisieren, um ihn der neuen API-Stufe zuzuordnen.

Der Client kann nun die Methoden aufrufen, für die ein API-Schlüssel gefordert wird, ohne explizit einen API-Schlüssel bereitstellen zu müssen. Der vom Genehmiger zurückgegebene API-Schlüssel wird automatisch verwendet.