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でモックを作成する