Erlauben Sie nicht authentifizierten Gastzugriff auf Ihre Anwendung mithilfe von Schlüsseln API - Amazon Location 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.

Erlauben Sie nicht authentifizierten Gastzugriff auf Ihre Anwendung mithilfe von Schlüsseln API

Wenn Sie Amazon Location Service APIs in Ihren Anwendungen aufrufen, tätigen Sie diesen Anruf in der Regel als authentifizierter Benutzer, der berechtigt ist, die API Anrufe zu tätigen. Es gibt jedoch einige Fälle, in denen Sie nicht jeden Benutzer Ihrer Anwendung authentifizieren möchten. Beispielsweise möchten Sie möglicherweise, dass eine Webanwendung, die Ihren Unternehmensstandort anzeigt, für alle Benutzer der Website verfügbar ist, unabhängig davon, ob sie angemeldet sind oder nicht. In diesem Fall besteht eine Alternative darin, die API Anrufe mithilfe von API Tasten zu tätigen.

APISchlüssel sind Schlüsselwerte, die bestimmten Amazon Location Service Service-Ressourcen in Ihren Ressourcen zugeordnet sind AWS-Konto, sowie bestimmten Aktionen, die Sie mit diesen Ressourcen ausführen können. Sie können einen API Schlüssel in Ihrer Anwendung verwenden, um nicht authentifizierte Anrufe an den Amazon-Standort APIs für diese Ressourcen zu tätigen. Wenn Sie beispielsweise der Kartenressource und den GetMap* Aktionen einen API Schlüssel zuordnen myMap, kann eine Anwendung, die diesen API Schlüssel verwendet, Karten anzeigen, die mit dieser Ressource erstellt wurden, und Ihr Konto wird wie jede andere Nutzung Ihres Kontos belastet. Derselbe API Schlüssel würde nicht zum Ändern oder Aktualisieren der Kartenressource berechtigen — nur die Nutzung der Ressource ist erlaubt.

Anmerkung

APISchlüssel können nur mit Karten-, Orts- und Routenressourcen verwendet werden, und Sie können diese Ressourcen nicht ändern oder erstellen. Wenn Ihre Anwendung Zugriff auf andere Ressourcen oder Aktionen für nicht authentifizierte Benutzer benötigt, können Sie Amazon Cognito verwenden, um den Zugriff zusammen mit oder anstelle von Schlüsseln bereitzustellen. API Weitere Informationen finden Sie unter Erlauben Sie mit Amazon Cognito nicht authentifizierten Gastzugriff auf Ihre Anwendung.

APISchlüssel enthalten einen Klartextwert, der den Zugriff auf eine oder mehrere Ressourcen in Ihrem ermöglicht. AWS-Konto Wenn jemand Ihren API Schlüssel kopiert, kann er auf dieselben Ressourcen zugreifen. Um dies zu vermeiden, können Sie bei der Erstellung des API Schlüssels die Domänen angeben, in denen der Schlüssel verwendet werden kann. Diese Domänen werden als Referer bezeichnet. Bei Bedarf können Sie auch kurzfristige API Schlüssel erstellen, indem Sie Ablaufzeiten für Ihre API Schlüssel festlegen.

APISchlüssel im Vergleich zu Amazon Cognito

APIkeys und Amazon Cognito werden auf ähnliche Weise für ähnliche Szenarien verwendet. Warum sollten Sie also eins dem anderen vorziehen? In der folgenden Liste werden einige der Unterschiede zwischen den beiden hervorgehoben.

  • APISchlüssel sind nur für Karten-, Orts- und Routenressourcen und nur für bestimmte Aktionen verfügbar. Amazon Cognito kann verwendet werden, um den Zugriff auf die meisten Amazon Location Service zu authentifizieren. APIs

  • Die Leistung von Kartenanfragen mit API Schlüsseln ist in der Regel schneller als bei ähnlichen Szenarien mit Amazon Cognito. Eine einfachere Authentifizierung bedeutet weniger Roundtrips zum Service und weniger zwischengespeicherte Anfragen, wenn dieselbe Kartenkachel in kurzer Zeit erneut abgerufen wird.

  • Mit Amazon Cognito können Sie Ihren eigenen Authentifizierungsprozess verwenden oder mithilfe von Amazon Cognito Federated Identities mehrere Authentifizierungsmethoden kombinieren. Weitere Informationen finden Sie unter Getting Started with Federated Identities im Amazon Cognito Developer Guide.

Schlüssel erstellen API

Sie können einen API Schlüssel erstellen und ihn mit einer oder mehreren Ressourcen in Ihrem verknüpfen AWS-Konto.

Sie können einen API Schlüssel über die Amazon Location Service Service-Konsole AWS CLI, den oder den Amazon-Standort erstellenAPIs.

Console
Um einen API Schlüssel mit der Amazon Location Service Service-Konsole zu erstellen
  1. Wählen Sie in der Amazon Location-Konsole im linken Menü die Option APISchlüssel aus.

  2. Wählen Sie auf der APISchlüsselseite die Option APISchlüssel erstellen aus.

  3. Geben Sie auf der Seite „APISchlüssel erstellen“ die folgenden Informationen ein:

    • Name — Ein Name für Ihren API Schlüssel, z. MyWebAppKey B.

    • Beschreibung — Eine optionale Beschreibung für Ihren API Schlüssel.

    • Ressourcen — Wählen Sie aus der Dropdownliste die Amazon-Standortressourcen aus, auf die Sie mit diesem API Schlüssel zugreifen möchten. Sie können mehr als eine Ressource hinzufügen, indem Sie Ressource hinzufügen wählen.

    • Aktionen — Geben Sie die Aktionen an, die Sie mit diesem API Schlüssel autorisieren möchten. Sie müssen mindestens eine Aktion auswählen, die zu jedem ausgewählten Ressourcentyp passt. Wenn Sie beispielsweise eine Ortsressource ausgewählt haben, müssen Sie mindestens eine der Optionen unter Places-Aktionen auswählen.

    • Ablaufzeit — Fügen Sie optional ein Ablaufdatum und eine Ablaufzeit für Ihren API Schlüssel hinzu. Weitere Informationen finden Sie unter Verwalten Sie API wichtige Lebensdauern.

    • Referer — Fügen Sie optional eine oder mehrere Domains hinzu, für die Sie den API Schlüssel verwenden können. Wenn der API Schlüssel beispielsweise darin besteht, die Ausführung einer Anwendung auf der Website zuzulassenexample.com, können Sie einen zulässigen Referer angeben. *.example.com/

    • Tags — Fügen Sie dem API Schlüssel optional Tags hinzu.

  4. Wählen Sie APISchlüssel erstellen, um den API Schlüssel zu erstellen.

  5. Auf der Detailseite für den API Schlüssel finden Sie Informationen zu dem API Schlüssel, den Sie erstellt haben. Wählen Sie APISchlüssel anzeigen, um den Schlüsselwert zu sehen, den Sie beim Aufrufen von Amazon Location verwendenAPIs. Der Schlüsselwert wird das Format habenv1.public.a1b2c3d4.... Weitere Hinweise zur Verwendung des API Schlüssels zum Rendern von Maps finden Sie unterVerwenden Sie einen API Schlüssel, um eine Karte zu rendern.

API

Um einen API Schlüssel mithilfe des Amazon-Standorts zu erstellen APIs

Verwenden Sie den CreateKey Vorgang vom Amazon-Standort ausAPIs.

Das folgende Beispiel ist eine API Anforderung zur Erstellung eines API Schlüssels mit dem Namen ExampleKey ohne Ablaufdatum und mit Zugriff auf eine einzige Kartenressource.

POST /metadata/v0/keys HTTP/1.1 Content-type: application/json { "KeyName": "ExampleKey" "Restrictions": { "AllowActions": [ "geo:GetMap*" ], "AllowResources": [ "arn:aws:geo:region:map/mapname" ] }, "NoExpiry": true } }

Die Antwort enthält den API Schlüsselwert, der beim Zugriff auf Ressourcen in Ihren Anwendungen verwendet werden soll. Der Schlüsselwert wird das Format habenv1.public.a1b2c3d4.... Weitere Informationen zur Verwendung des API Schlüssels zum Rendern von Karten finden Sie unterVerwenden Sie einen API Schlüssel, um eine Karte zu rendern.

Sie können den auch verwenden DescribeKeyAPI, um den Schlüsselwert für einen Schlüssel zu einem späteren Zeitpunkt zu ermitteln.

AWS CLI

Um einen API Schlüssel mithilfe von AWS CLI Befehlen zu erstellen

Verwenden Sie den create-key-Befehl.

Im folgenden Beispiel wird ein API Schlüssel mit dem Namen erstellt ExampleKey ohne Ablaufdatum und mit Zugriff auf eine einzige Kartenressource.

aws location \ create-key \ --key-name ExampleKey \ --restrictions '{"AllowActions":["geo:GetMap*"],"AllowResources":["arn:aws:geo:region:map/mapname"]}' \ --no-expiry

Die Antwort enthält den API Schlüsselwert, der beim Zugriff auf Ressourcen in Ihren Anwendungen verwendet werden soll. Der Schlüsselwert wird das Format habenv1.public.a1b2c3d4.... Weitere Informationen zur Verwendung des API Schlüssels zum Rendern von Karten finden Sie unterVerwenden Sie einen API Schlüssel, um eine Karte zu rendern. Die Antwort auf create-key sieht wie folgt aus.

{ "Key": "v1.public.a1b2c3d4...", "KeyArn": "arn:aws:geo:region:accountId:api-key/ExampleKey", "KeyName": "ExampleKey", "CreateTime": "2023-02-06T22:33:15.693Z" }

Sie können ihn auch verwendendescribe-key, um den Schlüsselwert zu einem späteren Zeitpunkt zu finden. Das folgende Beispiel zeigt, wie Sie einen API Schlüssel mit describe-key dem Namen aufrufen ExampleKey.

aws location describe-key \ --key-name ExampleKey

Verwenden Sie eine API Taste, um einen Amazon-Standort anzurufen API

Nachdem Sie einen API Schlüssel erstellt haben, können Sie den Schlüsselwert verwenden, um Amazon Location APIs in Ihrer Anwendung aufzurufen.

DiejenigenAPIs, die API Schlüssel unterstützen, haben einen zusätzlichen Parameter, der den API Schlüsselwert annimmt. Wenn Sie beispielsweise den aufrufen GetPlaceAPI, können Sie den Schlüsselparameter wie folgt eingeben

GET /places/v0/indexes/IndexName/places/PlaceId?key=KeyValue

Wenn Sie diesen Wert eingeben, müssen Sie den API Anruf nicht wie gewohnt mit AWS Sig v4 authentifizieren.

JavaScript Entwickler können den Amazon-Standort verwenden, JavaScript Authentifizierungshelfer um bei der Authentifizierung von API Vorgängen mit API Schlüsseln zu helfen.

Für mobile Entwickler können Sie die folgende Amazon Location-Mobilauthentifizierung verwendenSDKs:

AWS CLI Benutzer sollten bei der Verwendung des --key Parameters auch den Parameter verwenden, um zu vermeiden, dass sie mit Sig v4 signieren. --no-sign-request

Anmerkung

Wenn Sie key sowohl eine als auch eine AWS Sig v4-Signatur in einen Anruf bei Amazon Location Service einbeziehen, wird nur der API Schlüssel verwendet.

Verwenden Sie einen API Schlüssel, um eine Karte zu rendern

Sie können den API Schlüsselwert verwenden, um eine Karte in Ihrer Anwendung mit zu rendern MapLibre. Dies unterscheidet sich ein wenig von der Verwendung der API Schlüssel an einem anderen Amazon-StandortAPIs, den Sie direkt anrufen, da MapLibre diese Anrufe für Sie getätigt werden.

Der folgende Beispielcode zeigt die Verwendung des API Schlüssels zum Rendern einer Map auf einer einfachen Webseite mithilfe des MapLibre GL JS-Kartensteuerelements. Damit dieser Code ordnungsgemäß funktioniert, ersetzen Sie den v1.public.your-api-key-value, us-east-1, und ExampleMap Zeichenketten mit Werten, die Ihren entsprechen AWS-Konto.

<!-- index.html --> <html> <head> <link href="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.css" rel="stylesheet" /> <style> body { margin: 0; } #map { height: 100vh; } </style> </head> <body> <!-- Map container --> <div id="map" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.js"></script> <script> const apiKey = "v1.public.your-api-key-value"; // API key const region = "us-east-1"; // Region const mapName = "ExampleMap"; // Map name // URL for style descriptor const styleUrl = `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=${apiKey}`; // Initialize the map const map = new maplibregl.Map({ container: "map", style: styleUrl, center: [-123.1187, 49.2819], zoom: 11, }); map.addControl(new maplibregl.NavigationControl(), "top-left"); </script> </body> </html>

Verwalten Sie API wichtige Lebensdauern

Sie können API Schlüssel erstellen, die unbegrenzt gültig sind. Wenn Sie jedoch einen temporären API Schlüssel erstellen, Schlüssel regelmäßig rotieren oder einen vorhandenen API Schlüssel widerrufen möchten, können Sie die Gültigkeitsdauer des API API Schlüssels verwenden.

Wenn Sie einen neuen API Schlüssel erstellen oder einen vorhandenen aktualisieren, können Sie die Ablaufzeit für diesen API Schlüssel festlegen.

  • Wenn ein API Schlüssel seine Ablaufzeit erreicht, wird der Schlüssel automatisch deaktiviert. Inaktive Schlüssel können nicht mehr für Kartenanfragen verwendet werden.

  • Sie können einen API Schlüssel 90 Tage nach seiner Deaktivierung löschen.

  • Wenn Sie einen inaktiven Schlüssel haben, den Sie noch nicht gelöscht haben, können Sie ihn wiederherstellen, indem Sie die Ablaufzeit auf einen future Zeitpunkt aktualisieren.

  • Um einen permanenten Schlüssel zu erstellen, können Sie die Ablaufzeit entfernen.

  • Wenn Sie versuchen, einen API Schlüssel zu deaktivieren, der in den letzten 7 Tagen verwendet wurde, werden Sie aufgefordert, zu bestätigen, dass Sie die Änderung vornehmen möchten. Wenn Sie den Amazon Location Service oder den AWS CLI verwendenAPI, erhalten Sie eine Fehlermeldung, sofern Sie den ForceUpdate Parameter nicht auf true setzen.