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アクセスが拒否されたことが確認できました!