0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python(Django) x AWS 一人アドベントカレンダーAdvent Calendar 2024

Day 18

【AWS】API Gateway + Lambda + WAFで、指定のIPアドレスからのアクセスのみを許可する

Posted at

概要

API Gateway + Lambdaの構成にて、WAFを使ってIP制限を行う方法を紹介します。

構築までの手順は以下の記事で紹介しましたのでご参考ください。

経緯

ELB + EC2だとLoadBalancerのセキュリティグループのインバウンドルールを利用することで、指定したIPアドレスからのアクセスだけを許可して他はブロックすることが可能ですよね。
それをAPI Gateway + Lambdaでも実現しよう!という話です。

AWS WAFのIPセットを使って制限をかけます。

手順

①WAFでIP setsを作成する

まずはIPセットを作成します。
ホワイトリスト方式を利用するので「指定したIPのアクセスのみを許可する」という意味になります。

  • WAF -> IP sets -> Create IP set
    • Region:リージョンを選択(②のWeb ACLと同じリージョンにすること)
    • IP addresses:対象アドレスを入力(CIDR方式・複数入力も可)

②WAFでWeb ACLsを作成する

  • WAF -> Web ACLs -> Create web ACL
    • Name:任意に命名
    • Associated AWS resourcesにて「Add AWS resources」をクリック
      • Amazon API Gateway REST API -> 作成済みのAPI Gatewayを追加
    • Rulesにて「Add rules」をクリックし「Add my own rules and rule groups」を選択
      • ルールタイプ「IP set」を選択し、Ruleを任意に命名、上記①で作成したIP set名を選択
      • ActionはAllowを選択してルール追加
  • 「Default web ACL action for requests that don't match any rules」
    • Blockに変更(これにより、このルールに合致しないアドレスはブロックする動作になる)

上記により、指定したIPアドレス以外のアクセスをブロックできるようになり、IP制限をかけることができました。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?