特定のホスト名のリクエストのみが AWS WAF アプリケーションにアクセスできるようにするカスタムルールを作成したいです。
解決策
アプリケーションへのアクセスを制限するには、ホスト名などのヘッダーに基づいてカスタムルールを作成します。ルールは、特定のホスト名のトラフィックを許可するか、特定のホスト名以外のトラフィックをブロックする必要があります。
特定のホスト名のトラフィックを許可する
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
- [新しいルールを作成] を選択します。
- [カスタムルール] を選択し、[次へ] を選択します。
- [独自のルールとルールグループを追加] を選択します。
- 次の値を追加してルールを設定します。
[ルールタイプ] で [ルールビルダー] を選択します。
[名前] にルールの名前を入力します。
[タイプ] で [正規ルール] を選択します。
[リクエストの条件] で、[ステートメントと一致] を選択します。
[検査] で [単一ヘッダー] を選択します。
[ヘッダーフィールド名] に [Host] を選択します。
[マッチタイプ] で [完全に一致する文字列] を選択します。
[一致する文字列] で、ホスト名を選択します。
(オプション) [テキスト変換] を選択するか、[なし] を選択します。
[アクション] で [許可] を選択します。
- [ルールを追加] を選択します。
- [ルールの優先度を設定] で該当するルールを選択し、優先度を変更します。詳細については、「ルール優先度を設定する」を参照してください。
- [保存] を選択します。
特定のホスト名以外のトラフィックをブロックする
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
- [新しいルールを作成] を選択します。
- [カスタムルール] を選択し、[次へ] を選択します。
- [ルールタイプ] で [カスタムルール] を選択し、[次へ] を選択します。
- 次の値を追加してルールを設定します。
[ルールタイプ] で [ルールビルダー] を選択します。
[名前] にルールの名前を入力します。
[タイプ] で [正規ルール] を選択します。
[リクエストの条件] には、[ステートメントと一致しない (NOT)] を選択します。
[検査] で [単一ヘッダー] を選択します。
[ヘッダーフィールド名] に [Host] を選択します。
[マッチタイプ] で [完全に一致する文字列] を選択します。
[一致する文字列] で、ホスト名を選択し、そのホスト名以外のすべてをブロックします。
(オプション) [テキスト変換] を選択するか、[なし] を選択します。
[アクション] で [ブロック] を選択します。
- [ルールを追加] を選択します。
- [ルールの優先度を設定] で該当するルールを選択し、優先度を変更します。詳細については、「ルール優先度を設定する」を参照してください。
- [保存] を選択します。
論理ルールステートメントを使用し、文字列一致ステートメントを、IP セット一致や地理的一致などの他のステートメントタイプと組み合わせることをおすすめします。
関連情報
AWS WAF のウェブ ACL トラフィックを記録する
AWS WAF でのラベル付けの仕組み