これまでAPI Gatewayを使ったPOST用のMock作成
API GatewayでPOST用のMockを作る
そのMockのPOSTリクエストの内容を検証する
API GatewayにPOSTされたリクエスト内容を検証する
といった内容を行ってきました。
ただこのままではURIを知っている人が全員アクセスできてしまいます。そのため実際にAPIを公開する際にはアクセスを制限することも多いと思います。
そこで今回は、POSTする際にAPIキーによる認証を設定してみました。
スポンサーリンク
目次
APIキー作成
まず、APIキーを選択しアクションのAPIキーの作成をします。
名前は「MyAPIkey」として保存します。
次に使用量プランの作成します。
名前を「MyAPIplan」
スロットリングのレートを1、バーストを1として、
クォータは3リクエスト数/月
とします。
完了すると以下の画面となりますのでAPIキーのタブを開きます。
先ほど作成したAPIキー「MyPostAPI」を追加します。
ここまで設定できたら、メソッドリクエストに対してAPIキーを設定します。
メソッドの実行画面からメソッドリクエストを開きます。
APIキーの必要性を「true」にしてチェック印をクリックします。
これでAPIキーの設定が完了しました。
APIキー自体は以下画面から確認できます。
APIへのアクセスを許可する人以外が見れないよう注意しましょう。
外部(今回はPostman)からのアクセスをテストする前に忘れずにデプロイしましょう。
テスト
まずはAPIキーを設定せずにPOSTリクエストを実行します。
結果、レスポンスが"message":"Forbiden"となり、正しくレスポンスされませんでした。
次にAPIキーを設定します。
HeadersのKEYは「x-api-key」として、VALUEの下図赤塗りの箇所にAPIキーを入力してください。
再度POSTリクエストを実行したところ、今度は正しくレスポンスが返ってくることができました。
まとめ
今回、API GatewayにおいてAPIキーの設定により特定の人以外からのリクエストができないよう設定しました。
実際にAPIを公開する際にはアクセスを制限することも多いかと思いますので、そのための1つの方法としてAPIキーはお手軽な手段になると思います。
参考
APIやHTTPに関する基本的なことは以下の本を参考にしました。
実際にAPIを使ったサービスを設計・実装する際に手元にあると役立つと思います。
Kindle出版されておりPCさえあればどこでも見れるのも嬉しいです。