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