Erlauben des nicht authentifizierten Gastzugriffs auf Ihre Anwendung mithilfe von API-Schlüsseln - 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 des nicht authentifizierten Gastzugriffs auf Ihre Anwendung mithilfe von API-Schlüsseln

Wenn Sie Amazon Location Service APIs in Ihren Anwendungen aufrufen, führen Sie diesen Aufruf normalerweise als authentifizierter Benutzer aus, der zum Ausführen der API-Aufrufe autorisiert ist. Es gibt jedoch einige Fälle, in denen Sie nicht jeden Benutzer Ihrer Anwendung authentifizieren möchten. Beispielsweise möchten Sie vielleicht, dass eine Webanwendung, die Ihren Standort anzeigt, jedem, der die Website verwendet, zur Verfügung steht, unabhängig davon, ob er angemeldet ist oder nicht. In diesem Fall besteht eine Alternative darin, API-Schlüssel für die API-Aufrufe zu verwenden.

API-Schlüssel sind ein Schlüsselwert, der bestimmten Amazon Location Service-Ressourcen in Ihrem zugeordnet ist AWS-Konto, sowie bestimmten Aktionen, die Sie für diese Ressourcen ausführen können. Sie können einen API-Schlüssel in Ihrer Anwendung verwenden, um nicht authentifizierte Aufrufe an die Amazon Location APIs für diese Ressourcen zu tätigen. Wenn Sie beispielsweise einen API-Schlüssel mit der Kartenressource myMap und den GetMap* Aktionen verknüpfen, kann eine Anwendung, die diesen API-Schlüssel verwendet, Karten anzeigen, die mit dieser Ressource erstellt wurden, und Ihr Konto wird als jede andere Nutzung von Ihrem Konto belastet. Derselbe API-Schlüssel würde keine Berechtigungen zum Ändern oder Aktualisieren der Kartenressource erteilen – nur die Verwendung der Ressource ist zulässig.

Anmerkung

API-Schlü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 Zugriff zusammen mit oder anstelle von API-Schlüsseln zu gewähren. Weitere Informationen finden Sie unter Erlauben des nicht authentifizierten Gastzugriffs auf Ihre Anwendung mit Amazon Cognito.

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

API-Schlüssel im Vergleich zu Amazon Cognito

API-Schlüssel und Amazon Cognito werden auf ähnliche Weise für ähnliche Szenarien verwendet. Warum würden Sie also einen gegenüber dem anderen verwenden? In der folgenden Liste werden einige der Unterschiede zwischen den beiden hervorgehoben.

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

  • Die Leistung von Kartenanforderungen mit API-Schlüsseln ist in der Regel schneller als ähnliche Szenarien mit Amazon Cognito . Eine einfachere Authentifizierung bedeutet weniger Roundtrips zum Service und zwischengespeicherte Anforderungen, wenn innerhalb eines kurzen Zeitraums wieder dieselbe Kartenkachel abgerufen wird.

  • Mit Amazon Cognito können Sie Ihren eigenen Authentifizierungsprozess verwenden oder mehrere Authentifizierungsmethoden kombinieren, indem Sie Amazon Cognito Federated Identities verwenden. Weitere Informationen finden Sie unter Erste Schritte mit Verbundidentitäten im Amazon Cognito-Entwicklerhandbuch.

Erstellen von API-Schlüsseln

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

Sie können einen API-Schlüssel mithilfe der Amazon Location Service-Konsole, der AWS CLIoder der Amazon Location APIs erstellen.

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

  2. Wählen Sie auf der Seite API-Schlüssel die Option API-Schlüssel erstellen aus.

  3. Geben Sie auf der Seite API-Schlüssel erstellen die folgenden Informationen ein:

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

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

    • Ressourcen – Wählen Sie die Amazon Location-Ressourcen aus, auf die Sie mit diesem API-Schlüssel Zugriff gewähren möchten, aus der Dropdown-Liste aus. Sie können mehr als eine Ressource hinzufügen, indem Sie Ressource hinzufügen auswä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 jedem ausgewählten Ressourcentyp entspricht. Wenn Sie beispielsweise eine Ortsressource ausgewählt haben, müssen Sie mindestens eine der Optionen unter Ortsaktionen 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 der Lebensdauer von API-Schlüsseln.

    • Referenten – Fügen Sie optional eine oder mehrere Domains hinzu, in denen Sie den API-Schlüssel verwenden können. Wenn der API-Schlüssel beispielsweise eine Anwendung zulassen soll, die auf der Website ausgeführt wirdexample.com, können Sie *.example.com/ als zulässigen Referer verwenden.

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

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

  5. Auf der Detailseite für den API-Schlüssel finden Sie Informationen zu dem von Ihnen erstellten API-Schlüssel. Wählen Sie API-Schlüssel anzeigen, um den Schlüsselwert anzuzeigen, den Sie beim Aufrufen von Amazon Location APIs verwenden. Der Schlüsselwert hat das Format v1.public.a1b2c3d4.... Weitere Informationen zur Verwendung des API-Schlüssels zum Rendern von Karten finden Sie unter Verwenden eines API-Schlüssels zum Rendern einer Zuordnung.

API

So erstellen Sie einen API-Schlüssel mit den Amazon Location APIs

Verwenden Sie die -CreateKeyOperation aus den Amazon Location APIs .

Das folgende Beispiel ist eine API-Anforderung zum Erstellen eines API-Schlüssels ExampleKey namens ohne Ablaufdatum und Zugriff auf eine einzelne 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 hat das Format v1.public.a1b2c3d4.... Weitere Informationen zur Verwendung des API-Schlüssels zum Rendern von Karten finden Sie unter Verwenden eines API-Schlüssels zum Rendern einer Zuordnung.

Sie können auch die DescribeKey-API verwenden, um den Schlüsselwert für einen Schlüssel zu einem späteren Zeitpunkt zu finden.

AWS CLI

So erstellen Sie einen API-Schlüssel mit AWS CLI -Befehlen

Verwenden Sie den create-key-Befehl.

Im folgenden Beispiel wird ein API-Schlüssel namens ExampleKey ohne Ablaufdatum und Zugriff auf eine einzelne Kartenressource erstellt.

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 hat das Format v1.public.a1b2c3d4.... Weitere Informationen zur Verwendung des API-Schlüssels zum Rendern von Karten finden Sie unter Verwenden eines API-Schlüssels zum Rendern einer Zuordnung. 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 auch verwendendescribe-key, um den Schlüsselwert zu einem späteren Zeitpunkt zu finden. Das folgende Beispiel zeigt, wie Sie describe-key für einen API-Schlüssel mit dem Namen aufrufenExampleKey.

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

Verwenden eines API-Schlüssels zum Aufrufen einer Amazon Location API

Nachdem Sie einen API-Schlüssel erstellt haben, können Sie den Schlüsselwert verwenden, um Aufrufe an Amazon Location APIs in Ihrer Anwendung zu tätigen.

Die APIs, die API-Schlüssel unterstützen, verfügen über einen zusätzlichen Parameter, der den API-Schlüsselwert verwendet. Wenn Sie beispielsweise die GetPlace-API aufrufen, können Sie den Schlüsselparameter wie folgt ausfüllen:

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

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

Für JavaScript Entwickler können Sie Amazon Location verwenden, JavaScript Authentifizierungshelfer um die Authentifizierung von API-Operationen mit API-Schlüsseln zu unterstützen.

Für Entwickler von Mobilgeräten können Sie die folgenden Amazon Location SDKs für die mobile Authentifizierung verwenden:

Wenn Sie den ---keyParameter verwenden, sollten Sie für AWS CLI Benutzer auch den ---no-sign-requestParameter verwenden, um das Signieren mit Sig v4 zu vermeiden.

Anmerkung

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

Verwenden eines API-Schlüssels zum Rendern einer Zuordnung

Sie können den API-Schlüsselwert verwenden, um eine Zuordnung in Ihrer Anwendung mithilfe von zu rendern MapLibre. Dies unterscheidet sich etwas von der Verwendung der API-Schlüssel in anderen Amazon Location APIs, die Sie direkt aufrufen, da diese Aufrufe für Sie MapLibre vornimmt.

Der folgende Beispielcode zeigt die Verwendung des -API-Schlüssels zum Rendern einer Karte auf einer einfachen Webseite mithilfe der MapLibre microSD JS-Kartensteuerung. Damit dieser Code ordnungsgemäß funktioniert, ersetzen Sie die ExampleMap Zeichenfolgen v1.public.your-api-key-value, us-east-1 und durch Werte, die Ihrem 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 der Lebensdauer von API-Schlüsseln

Sie können API-Schlüssel erstellen, die auf unbestimmte Zeit funktionieren. Wenn Sie jedoch einen temporären API-Schlüssel erstellen, API-Schlüssel regelmäßig rotieren oder einen vorhandenen API-Schlüssel widerrufen möchten, können Sie den Ablauf von API-Schlüsseln 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 hat, wird der Schlüssel automatisch deaktiviert. Inaktive Schlüssel können nicht mehr verwendet werden, um Kartenanforderungen zu stellen.

  • Sie können einen API-Schlüssel 90 Tage nach der 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 zukünftigen 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 innerhalb der letzten 7 Tage verwendet wurde, werden Sie aufgefordert, zu bestätigen, dass Sie die Änderung vornehmen möchten. Wenn Sie die Amazon Location Service API oder die verwenden AWS CLI, erhalten Sie eine Fehlermeldung, es sei denn, Sie setzen den ForceUpdate Parameter auf „true“.