AWS WAF にて特定のIPアドレスからのアクセスをブロックもしくは許可する

何かサービスを運用していて、特定のIPアドレスからのアクセスをブロックや許可をしたい時、
ALB(ロードバランサー)環境下だと、WAF を使うのが多分一番簡単。

効果はホワイトリストは必須と思うので評価なし。

ブラックリストは正直手間に見合った効果はない。
ごく稀に自宅や学校、会社のような場所から DDoS のような事をしてくる方々が一定数いるので、
それ向けに効果があるくらい。

AWS 環境

  • WAF
  • ALB
  • EC2

保護パックを作成する

ブラックリストを作る

ブロックしたい IPアドレスリストを作る。
IPアドレスセットというらしい。

ルールに追加する

  • 「AWS WAF」→「保護パック (ウェブ ACL)」→ 作成した保護パックを選択 →「ルールを管理」→「ルールを追加」クリック
    • 「カスタムルール」→「次へ」→「IP ベースのルール」→「次へ」
      • アクション: Block
      • ルール名: 適当
      • ステートメント: 既存の IP セットを使用
      • IP アドレスリスト: 先程作成した IP アドレスセットを選択
      • 「ルールを追加」クリック

ホワイトリストを作る

逆に許可したい IPアドレスのリストを作る。
自分等が管理している EC2 インスタンスの IP アドレスとか?

  • 「AWS WAF」→「IP セット」→「IP アドレスセットを作成」クリック
    • IP セット名: 適当(whitelist-IPv4 とか?)
    • スコープ: リージョン別
    • IP バージョン: IPv4
    • IP アドレス: 許可したい IPアドレスを追加する
    • 「保存」クリック

ルールに追加する

  • 「AWS WAF」→「保護パック (ウェブ ACL)」→ 作成した保護パックを選択 →「ルールを管理」→「ルールを追加」クリック
    • 「カスタムルール」→「次へ」→「IP ベースのルール」→「次へ」
      • アクション: Allow
      • ルール名: 適当
      • ステートメント: 既存の IP セットを使用
      • IP アドレスリスト: 先程作成した IP アドレスセットを選択
      • 「ルールを追加」クリック

ルールの順序を変更する

  • 「AWS WAF」→「保護パック (ウェブ ACL)」→ 作成した保護パックを選択 →「ルールを管理」クリック
    • 「ルール順序を編集」クリック
    • リストの上部が優先度高いので、ホワイトリストは最上部、ブラックリストはその次くらいにドラッグするのが良い?
    • 「ルール順序を保存」クリック

おまけ