AWS API GatewayでAPIキー認証を設定する
はじめに
今回は、AWS API GatewayでAPIキー認証を構成する方法をご紹介します。
あらかじめ、テスト用のLambda関数とAPI Gatewayを作成しておきます。”Hello World!”と返却するシンプルなものです。

API キーの作成
画面左メニューの「API キー」を選択し、「アクション」から「APIキーの作成」をクリックします。

名前を入力し、「保存」ボタンをクリックします。

作成したAPIキーの情報が表示されます。ここで「APIキー」の「表示」をクリックすると、APIキーが画面に表示されますのでメモしておきます。

使用量プランの作成
次に使用量プランを作成します。
画面左メニューの「使用量プラン」を選択し、「作成」ボタンをクリックします。必要な項目を入力し、「次へ」ボタンをクリックします。

APIとステージを選択し、右側の「追加」アイコンをクリックします。

「次へ」ボタンをクリックします。

「APIキーを使用量プランに追加」ボタンをクリックし、キーの名前を入力後、右側の「追加」アイコンをクリックします。

「完了」ボタンをクリックして設定完了です。

API Gatewayの設定
APIキーの指定が必須となるようAPI Gatewayの設定を変更します。
対象のAPIメソッドを表示し、「メソッドリクエスト」をクリックします。

「APIキーの必要性」をtrueに変更します。

設定変更後、APIをデプロイします。「アクション」から「APIのデプロイ」を選択します。

対象のステージを選択し、「デプロイ」ボタンをクリックします。

これで設定完了です。早速動作確認してみましょう。
動作確認
curlコマンドで動作確認してみます。まずは、何も指定せずにアクセスします。
curl https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/default/AWSLambda8
{"message":"Forbidden"}
エラーメッセージが返ってきましたね。次にAPIキーをリクエストヘッダに指定してみます。[APIキー]のところは、APIキー作成時にメモした値に置き換えてください。
curl https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/default/AWSLambda8 --header "x-api-key:[APIキー]"
"Hello World!"
正常に”Hello World!”が返ってきました!
ちなみに、使用量の上限を超えると下記のエラーメッセージが返ってきます。
{"message":"Too Many Requests"}
以上です。
投稿者プロフィール

- 東京在住のフリーランスエンジニア
最新の投稿
AWS2020.11.05AWS CLI コマンドまとめ ~S3編~
AWS2020.11.02AWS コマンドラインインターフェイス(CLI)をインストールする~Windows編~
その他2020.10.30Chromeでクロスドメインiframe内の要素にアクセスする
AWS2020.10.29AWS API GatewayのREST APIでモックを作成する