AWS WAFを作成する
作成したAPI Gatewayで特定のGIPからのみ実行可能なようAWS WAFで制御する方法をご説明します。
※こちらで紹介する設定値はあくまでも参考となります。
必要に応じてパラメータは変更をご検討ください。
※こちらで紹介する設定値はあくまでも参考となります。
必要に応じてパラメータは変更をご検討ください。
事前準備
以下事項が完了していることを確認してください。1. AWS WAF作成
1-1. マネジメントコンソールへのログイン
①AWSマネジメントコンソールへのログインページにアクセスします。②アカウントID、ユーザー名、パスワードを入力してAWSマネジメントコンソールへログインします。

1-2. WAF & Shieldコンソールへの遷移
①上部の検索バーに「waf」と入力して、検索結果に表示される「WAF & Shield」をクリックします。
1-3. IP sets作成
①左メニューの「IP sets」をクリックします。
②上部のリージョンメニューで「Asia Pcific(Tokyo)」をクリックします。

③「Create IP set」をクリックします。

④IP set nameに適当な名前を設定し、IP addressesに許可したいIPアドレスをCIDR表記で入力します。
改行して複数のIPも設定可能です。設定できたら、「Create IP set」をクリックします。

1-4. AWS WAF作成
⑤左メニューの「Web ACLs」をクリックします。
⑥Nameに適当な名前を入力し、Regionを「Asia Pcific(Tokyo)」に選択後、「Add AWS Resources」をクリックします。

⑦IP制限を掛けたいAPI Gatewayを選択し、「Add」をクリックします。

⑧IP制限を掛けたいAPI Gatewayを選択し、「Add」をクリックします。

⑨リソースが追加されるので、「Next」をクリックします。

⑩リソースが追加されるので、「Next」をクリックします。

⑪「Add rules」から「Add my own rules and rule groups」をクリックします。

⑫Rule typeに「IP set」を選択し、Nmaeに適当な名前を入力します。
IP setには手順④で作ったIP setを選択し、Actionを「Allow」に選択後、「Add rules」をクリックします。

⑬Default actionを「Block」に設定し、「Next」をクリックします。

⑭「Next」をクリックします。

⑮「Next」をクリックします。

⑯「Create web ACL」をクリックします。

2. API実行
2-1. 実行テスト
①実際にAPI利用者として、許可されたGIPからAPIにリクエストを送りLambdaを実行します。以下のコマンドでAPIにリクエストを投げることができます。
$ curl -X POST https://[1-3. API Gatewayの作成⑩のURL] -d "{\"id\":\"検索したいインスタンスID\"}"
※AWSアカウント情報などが入っているのでマスクしています。

②次に許可されていないGIPからAPIにリクエストを送りLambdaを実行します。
Forbiddenとなり、APIアクセスが拒否されたことが確認できました!
