Amazon API Gateway
開発者ガイド

API キーのソースを選択する

使用量プランを API と関連付けて API メソッドで API キーを有効にする場合、API への各受信リクエストには、API キーが含まれている必要があります。API Gateway はキーを読み取り、使用量プランのキーと照合します。一致する場合、API Gateway は、プランのリクエスト制限とクォータに基づいてリクエストを調整します。それ以外の場合は、InvalidKeyParameter 例外がスローされます。その結果、発信者は 403 Forbidden レスポンスを受け取ります。

API Gateway API は 2 つのソースのいずれかから API キーを受け取ることができます。

HEADER

API キーを顧客に配布して、各受信リクエストの X-API-Key ヘッダーとして API キーを渡す必要があります。

AUTHORIZER

この認証レスポンスの一部として API キーを返す Lambda オーソライザーを使用することができます。認証レスポンスの詳細については、「Amazon API Gateway Lambda オーソライザーからの出力」を参照してください。

API Gateway コンソールを使用して、API の API キーのソースを選択するには:

  1. API Gateway コンソールにサインインします。

  2. 既存の API を選択するか、新しい API を作成します。

  3. プライマリナビゲーションペインで、選択した、または新しく作成した API の下で [Settings] を選択します。

  4. [Settings] ペインの [API Key Source] セクションの下で、ドロップダウンリストから [HEADER] または [AUTHORIZER] を選択します。

  5. [Save Changes] を選択します。

AWS CLI を使用して API の API キーのソースを選択するには、次のように update-rest-api コマンドを呼び出します。

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

クライアントが API キーを送信するには、上記の CLI コマンドで valueHEADER に設定します。

API Gateway REST API を使用して API の API キーのソースを選択するには、次のように restapi:update を呼び出します。

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

オーソライザーに API キーを戻すには、前の patchOperations 入力で valueAUTHORIZER に設定します。

選択した API キーのソースタイプに応じて、以下のいずれかの手順を使用してヘッダーソースの API キー、またはメソッド呼び出しでオーソライザーから返される API キーを使用します。

ヘッダーソースの API キーを使用するには

  1. 目的の API メソッドで、API を作成します。その API をステージにデプロイします。

  2. 新しい使用プランを作成するか、既存のものから選択します。デプロイされた API ステージを使用プランに追加します。使用プランに API キーをアタッチするか、プラン内の既存の API キーを選択します。選択した API キーの値を書き留めます。

  3. API キーを要求するよう API メソッドをセットアップします。

  4. 同じステージに API を再デプロイします。新しいステージに API をデプロイする場合は、必ず新しい API ステージをアタッチするように使用プランを更新します。

これでクライアントから、選択した API キーをヘッダー値とする x-api-key ヘッダーを指定しながら API メソッドを呼び出すことができるようになりました。

オーソライザーソースの API キーを使用するには

  1. 目的の API メソッドで、API を作成します。その API をステージにデプロイします。

  2. 新しい使用プランを作成するか、既存のものから選択します。デプロイされた API ステージを使用プランに追加します。使用プランに API キーをアタッチするか、プラン内の既存の API キーを選択します。選択した API キーの値を書き留めます。

  3. トークンタイプのカスタム Lambda オーソライザーを作成します。認証レスポンスのルートレベルのプロパティとして usageIdentifierKey:{api-key} を含めます。ここで {api-key} は前のステップで説明した API キーの値です。

  4. API キーを要求するように API メソッドを設定し、このメソッドでも Lambda トークンオーソライザーを有効にします。

  5. 同じステージに API を再デプロイします。新しいステージに API をデプロイする場合は、必ず新しい API ステージをアタッチするように使用プランを更新します。

これでクライアントから、明示的に API キーを指定せずに、API キーを要求するメソッドを呼び出すことができるようになりました。オーソライザーから返される API キーは自動的に使用されます。