API キーを使用して認証されていないゲストにアプリケーションへのアクセスを許可する - Amazon Location Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API キーを使用して認証されていないゲストにアプリケーションへのアクセスを許可する

アプリケーションで Amazon Location Service APIsを呼び出す場合、通常、この呼び出しはAPI、呼び出しを行う権限を持つ認証されたユーザーとして行われます。ただし、アプリケーションのすべてのユーザーを認証したくないケースも場合もあるでしょう。例えば、会社の所在地を表示する Web アプリケーションを、ログインしているかどうかに関係なく、Web サイトを使用するすべてのユーザーが利用できるようにしたい場合があります。この場合の代替方法の 1 つは、APIキーを使用してAPI呼び出しを行うことです。

API キーは、 内の特定の Amazon Location Service リソース、 AWS アカウントおよびそれらのリソースに対して実行できる特定のアクションに関連付けられたキー値です。アプリケーションの API キーを使用して、それらのリソースAPIsの Amazon Location に認証されていない呼び出しを行うことができます。例えば、APIキーをマップリソース myMapおよび GetMap*アクションに関連付けると、そのAPIキーを使用するアプリケーションはそのリソースで作成されたマップを表示でき、アカウントはアカウントからの他の使用状況として課金されます。同じAPIキーは、マップリソースを変更または更新するアクセス許可を付与しません。リソースの使用のみが許可されます。

注記

API キーはマップ 、プレイス ルートリソースでのみ使用でき、これらのリソースを変更または作成することはできません。アプリケーションが認証されていないユーザーの他のリソースやアクションにアクセスする必要がある場合は、Amazon Cognito を使用して、APIキーと共に、またはキーの代わりにアクセスを提供できます。詳細については、「Amazon Cognito を使用して、認証されていないゲストにアプリケーションへのアクセスを許可する」を参照してください。

API キーには、 内の 1 つ以上のリソースへのアクセスを許可するプレーンテキストが含まれます AWS アカウント。誰かがAPIキーをコピーすると、それらの同じリソースにアクセスできます。これを回避するには、APIキーの作成時にキーを使用できるドメインを指定できます。これらのドメインはリファラーと呼ばれます。必要に応じて、APIキーの有効期限を設定して短期APIキーを作成することもできます。

API Amazon Cognito と比較したキー

API キーと Amazon Cognito は、同様のシナリオで同様の方法で使用されますが、どちらか一方を使用するのはなぜですか? 以下のリストでは、その 2 つの違いをいくつか紹介します。

  • API キーは、マップ、プレイス、ルートリソース、および特定のアクションでのみ使用できます。Amazon Cognito は、ほとんどの Amazon Location Service へのアクセスを認証するために使用できますAPIs。

  • API キーを使用したマップリクエストのパフォーマンスは、通常、Amazon Cognito の同様のシナリオよりも高速です。認証が簡単なため、短期間に同じマップタイルを再度取得したときに、サービスとキャッシュされたリクエストへのラウンドトリップが少なくなります。

  • Amazon Cognito では、Amazon Cognito フェデレーション ID を使用して、独自の認証プロセスを使用したり、複数の認証方法を組み合わせたりできます。詳細については、「Amazon Cognito 開発者ガイド」の「Getting Started with Federated Identities」を参照してください。

API キーの作成

API キーを作成し、 内の 1 つ以上のリソースに関連付けることができます AWS アカウント。

Amazon Location Service コンソール、、 AWS CLIまたは Amazon Location を使用してAPIキーを作成できますAPIs。

Console
Amazon Location Service コンソールを使用してAPIキーを作成するには
  1. Amazon Location コンソール で、左側のメニューからAPIキーを選択します。

  2. API キーページで、APIキーの作成 を選択します。

  3. API キーの作成ページで、次の情報を入力します。

    • 名前 – など、APIキーの名前MyWebAppKey

    • 説明 – APIキーのオプションの説明。

    • リソース – ドロップダウンから、このAPIキーを使用して へのアクセスを許可する Amazon Location リソースを選択します。リソースの追加を選択すると、複数のリソースを追加できます。

    • アクション – このAPIキーで承認するアクションを指定します。選択した各リソースタイプと一致するアクションを少なくとも 1 つ選択する必要があります。例えば、Place リソースを選択した場合は、Places Actions の下にある選択肢を少なくとも 1 つ選択する必要があります。

    • 有効期限 — オプションで、APIキーの有効期限日時を追加します。詳細については、「API キーの有効期間を管理する」を参照してください。

    • リファラー – オプションで、APIキーを使用できる 1 つ以上のドメインを追加します。例えば、 APIキーがウェブサイト で実行されているアプリケーションを許可する場合example.com、 を許可されたリファラー*.example.com/として指定できます。

    • タグ – オプションで、APIキーにタグを追加します。

  4. API キーの作成を選択してAPIキーを作成します。

  5. API キーの詳細ページには、作成したAPIキーに関する情報が表示されます。API キーを表示 を選択して、Amazon Location を呼び出すときに使用するキー値を確認しますAPIs。キー値は次のフォーマットになりますv1.public.a1b2c3d4...。API キーを使用してマップをレンダリングする方法の詳細については、「」を参照してくださいAPI キーを使用してマップをレンダリングする

API

Amazon Location を使用してAPIキーを作成するには APIs

Amazon Location から CreateKeyオペレーションを使用しますAPIs。

次の例は、 という名前のAPIキーを作成するAPIリクエストです。ExampleKey 有効期限がなく、1 つのマップリソースにアクセスできる。

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

レスポンスには、アプリケーションのリソースにアクセスするときに使用するAPIキー値が含まれます。キー値は次のフォーマットになりますv1.public.a1b2c3d4...。API キーを使用してマップをレンダリングする方法については、「」を参照してくださいAPI キーを使用してマップをレンダリングする

を使用してDescribeKeyAPI、後でキーのキー値を検索することもできます。

AWS CLI

コマンドを使用してAPI AWS CLI キーを作成するには

create-keyコマンドを実行します。

次の例では、 という API キーを作成します。ExampleKey 有効期限がなく、1 つのマップリソースにアクセスできる。

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

レスポンスには、アプリケーションのリソースにアクセスするときに使用するAPIキー値が含まれます。キー値は次のフォーマットになりますv1.public.a1b2c3d4...。API キーを使用してマップをレンダリングする方法については、「」を参照してくださいAPI キーを使用してマップをレンダリングするcreate-key への返答は次のようになります。

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

describe-keyを使用してキーバリューを後で検索することもできます。次の例は、 という名前のAPIキーdescribe-keyで を呼び出す方法を示しています。ExampleKey.

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

API キーを使用して Amazon Location を呼び出す API

API キーを作成したら、キー値を使用して、アプリケーションで Amazon Location を呼び出しAPIsます。

API キーAPIsをサポートする には、APIキー値を取得する追加のパラメータがあります。例えば、 GetPlace を呼び出す場合API、次のようにキーパラメータを入力できます。

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

この値を入力すると、通常どおり AWS Sig v4 でAPI通話を認証する必要はありません。

JavaScript デベロッパーの場合は、Amazon Location JavaScript 認証ヘルパー を使用して、APIキーを使用したAPIオペレーションの認証に役立てることができます。

モバイルデベロッパーの場合、次の Amazon Location モバイル認証を使用できますSDKs。

AWS CLI ユーザーの場合、 --keyパラメータを使用する場合、Sig v4 で署名しないように、 --no-sign-requestパラメータも使用する必要があります。

注記

Amazon Location Service への呼び出しに keyと AWS Sig v4 の両方の署名を含めると、 APIキーのみが使用されます。

API キーを使用してマップをレンダリングする

API キー値を使用して、 を使用してアプリケーションでマップをレンダリングできます MapLibre。これは、直接APIs呼び出す他の Amazon Location のAPIキーを使用するのとは少し異なります。 MapLibre は、これらのキーを呼び出すからです。

次のサンプルコードは、 APIキーを使用して MapLibre GL JS マップコントロールを使用してシンプルなウェブページにマップをレンダリングする方法を示しています。このコードが正しく機能するには、v1.public.your-api-key-value, us-east-1 および ExampleMap に一致する値を持つ文字列 AWS アカウント。

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

API キーの有効期間を管理する

無期限に機能するAPIキーを作成できます。ただし、一時APIキーの作成、定期的なAPIキーのローテーション、既存のAPIキーの取り消しを行う場合は、APIキーの有効期限 を使用できます。

新しいAPIキーを作成するとき、または既存のキーを更新するときは、そのAPIキーの有効期限を設定できます。

  • API キーの有効期限に達すると、キーは自動的に非アクティブ化されます。非アクティブなキーはマップリクエストには使用できなくなります。

  • API キーは、無効化してから 90 日後に削除できます。

  • まだ削除していない非アクティブなキーがある場合は、有効期限を将来の時間に更新することで復元できます。

  • 永久キーを作成するには、有効期限を削除することができます。

  • 過去 7 日以内に使用されたAPIキーを非アクティブ化しようとすると、変更を行うかどうかを確認するメッセージが表示されます。Amazon Location Service APIまたは を使用している場合は AWS CLI、ForceUpdateパラメータを true に設定しない限り、エラーが表示されます。