設定した AWS WAF において、特定の IPv4 アドレスと IPv6 アドレスにのみアクセスを許可し、その他の IP アドレスをブロックする必要があります。
解決策
AWS WAF では、ウェブリクエストの送信元 IP アドレスを、IP アドレスまたはアドレス範囲のセットと照合して検査することができます。ルールを作成すると、IP セットで指定した特定の IP アドレス以外のすべての IP アドレスによるリクエストをブロックできます。
IPv4 および IPv6 によるアクセスを制限する IP セットルールを作成する
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [IP セット] を選択し、[IP セットの作成] を選択します。
- [IP セット名] に名前を入力します (例: MyTrustedIPs)。
注: IP セットを作成した後に IP セット名を変更することはできません。
- (オプション) [説明] に IP セットの説明を入力します。
- [リージョン] で IP セットを保存する AWS リージョンを選択します。
注: ウェブアクセスコントロールリスト (ウェブ ACL) で IP セットを使用し、Amazon CloudFront ディストリビューションを保護する場合は、[グローバル (CloudFront)] を使用する必要があります。
- [IP バージョン] で使用するバージョンを選択します。
- [IP アドレス] に許可する IP アドレスまたは IP アドレス範囲を 1 行に 1 件ずつ、CIDR 表記で入力します。
注: AWS WAF は、/0 を除くすべての IPv4 および IPv6 CIDR 範囲をサポートしています。
例:
IPv4 アドレス 10.20.0.5 を指定する場合は、10.20.0.5/32 と入力します。
IPv6 アドレス 0:0:0:0:0:ffff:c000:22c を指定する場合は、0:0:0:0:0:ffff:c000:22c/128 と入力します。
IPv4 アドレスを 10.20.0.0 から 10.20.0.255 までの範囲で指定する場合は、10.20.0.0/24 と入力します。
IPv6 アドレスを 2620:0:2d0:200:0:0:0:0 から 2620:0:2d0:200:ffff:ffff:ffff:ffff までの範囲で指定する場合は、2620:0:2d0:200::/64 と入力します。
- IP セットの設定を確認し、[IP セットの作成] を選択します。
IP 一致ルールを作成する
次の手順を実行します。
- ナビゲーションペインの [AWS WAF] で [ウェブ ACL] を選択します。
- [リージョン] でウェブ ACL を作成したリージョンを選択します。
注: ウェブ ACL が CloudFront 用に設定されている場合は、[グローバル] を選択します。
- 目的のウェブ ACL を選択します。
- [ルール] を選択し、[ルールを追加]、[独自のルールとルールグループを追加] を選択します。
- [名前] にこのルールを識別する名前 (例: Block-Other-IPs) を入力します。
- [タイプ] で [正規ルール] を選択します。
- [リクエストが以下の場合] で [ステートメントと一致しない (NOT)] を選択します。
- [ステートメント] の [検査] で [送信元の IP アドレス] を選択します。
- [IP セット] で目的の IP セットを選択します (例: MyTrustedIPs)。
- 送信元アドレスとして使用する IP アドレスには、送信元 IP アドレスを選択します。
注: トラフィックをコンテンツ配信ネットワーク (CDN) またはその他のプロキシネットワーク経由でルーティングする場合は、ヘッダーに IP アドレスを使用してください。詳細については、「AWS WAF で転送された IP アドレスを使用する」を参照してください。
- [アクション] で [ブロック] を選択します。
- [ルールを追加] を選択します。
- [保存] を選択します。
IP 一致ルールは、IP セットに追加されていない IP アドレスをブロックします。IP セットに追加した IP アドレスに対しては、そのルールの下にある他のルールがリクエストを評価します。一致しない場合、AWS WAF はウェブ ACL のデフォルトアクションを適用します。
詳細については、「ルール優先度を設定する」を参照してください。
関連情報
AWS WAF を使用して、ユーザーエージェントヘッダーを含まない HTTP リクエストをブロックする方法を教えてください