AWS WAF を使用して、User-Agent ヘッダーを含まない HTTP リクエストをブロックするにはどうすればよいですか?
特定の User-Agent を含まない HTTP リクエストや、リクエストに特定の User-Agent ヘッダー値を含まない HTTP リクエストを制限したいと考えています。
簡単な説明
デフォルトでは、AWS WAF フィルターは HTTP リクエストパラメータが存在するかどうかを確認しません。HTTP リクエストパラメータが存在するかどうかを確認するには、次を実行します。
AWS マネージドルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックします。
- または -
カスタムルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックするか、リクエストに特定の User-Agent が含まれている場合はトラフィックをブロックします。
解決方法
AWS マネージドルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックする
AWS WAF の AWS マネージドルールを使用すると、独自のルールを記述することなく、User-Agent ヘッダーを含まない HTTP リクエストをブロックできます。
注: マネージドルールについては、バージョンが変更されたり、有効期限が切れたりする場合があります。詳細については、「Best practices for handling managed rule group versions」(マネージドルールグループのバージョンを処理するためのベストプラクティス) を参照してください。
次のルールは、HTTP User-Agent ヘッダーがないリクエストと、ウェブブラウザからのものではないと考えられる User-Agent 文字列を検査します。
NoUserAgent_HEADER
このルールは、コアルールセット (CRS) マネージドルールグループからのものです。このルールは、HTTP User-Agent ヘッダーがないリクエストを検査します。
SignalNonBrowserUserAgent
このルールは、AWS WAF Bot Control ルールグループからのものです。このルールは、User-Agent を持たないリクエストを含む、ウェブブラウザからのものではないと考えられる User-Agent 文字列を検査します。
ウェブ ACL に AWS マネージドルールグループを追加するには
- AWS WAF コンソールを開きます。
- ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
- [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。 - ウェブ ACL を選択します。
- [Rules] (ルール) を選択し、[Add Rules] (ルールを追加) を選択します。ドロップダウンから [Add managed rule groups] (マネージドルールグループの追加) を選択します。
- [AWS managed rule groups] (AWS マネージドルールグループセクション) を展開します。
- ルールグループを見つけて、[Add to web ACL] (ウェブ ACL に追加) を有効にします。
例えば、NoUserAgent_HEADER ルールを含む [Core rule set] (コアルールセット) の [Add to web ACL] (ウェブ ACL に追加) をオンにすることができます。 - (オプション) [Edit] (編集) を選択して、ルールグループの設定を表示および変更します。
- [Add Rules] (ルールを追加) を選択します。
- [Save] (保存) を選択します。
ウェブ ACL の既存の AWS マネージドルールグループを編集するには
- AWS WAF コンソールを開きます。
- ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
- [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。 - ウェブ ACL を選択します。
- [Rules] (ルール) を選択し、 [Edit] (編集) を選択して設定を表示および変更します。
注: 設定の編集の詳細については、「Working with managed rule groups」(マネージドルールグループの操作) を参照してください。 - 編集が完了したら、[Save] (保存) を選択します。
AWS マネージドルールルールグループで誤検出のシナリオが発生した場合は、「AWS Managed Rules for AWS WAF」(AWS WAF の AWS マネージドルール) を参照してください。
カスタムルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックする
カスタムルールを使用して User-Agent ヘッダーを含まないリクエストをブロックするには、次を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
- [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
注:ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。 - ウェブ ACL を選択します。
- [Rules] (ルール) を選択し、[Add Rules] (ルールを追加)、[Add my own rules and rule groups] (独自のルールとルールグループを追加) の順に選択します。
- [Rule type] (ルールタイプ) で、[Rule Builder] (ルールビルダー) を選択します。
- [Name] (名前) で、このルールを特定するための名前を入力します。
- [Type] (タイプ) で、[Regular rule] (通常のルール) を選択します。
- [If a request] (リクエストが次の場合) で、[doesn't match the statement (NOT)] (ステートメントと一致しない (NOT)) を選択します。
- [Statement] (ステートメント) の [Inspect] (検査) で、[Single header] (単一ヘッダー) を選択します。
[Header field name] (ヘッダーフィールド名) で、フィールドの名前を入力します。例: User-Agent。
[Match type] (一致タイプ) で、[Size greater than] (次を超えるサイズ:) を選択します。
[Size in bytes] (サイズ (バイト)) で、0 (ゼロ) を入力します。
(オプション) [Text transformation] (テキスト変換) を選択するか、[None] (なし) を選択します。 - [Action] (アクション) で [Block] (ブロック) を選択します。
- [Add Rule] (ルールを追加) を選択します。
- (オプション) [Set Rule Priority] (ルール優先度を設定) で、ルールを選択し、優先順位を移動します。ルールは、表示される順序で処理されます。詳細については、ウェブ ACL でのルールとルールグループの処理順序を参照してください。
- [Save] (保存) を選択します。
カスタムルールを使用して、リクエストに特定の User-Agent が含まれている場合はトラフィックをブロックする
カスタムルールを使用して、リクエストに特定の User-Agent が含まれている場合にトラフィックをブロックするには、次を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
- [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
注:ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。 - ウェブ ACL を選択します。
- [Rules] (ルール) を選択し、[Add Rules] (ルールを追加)、[Add my own rules and rule groups] (独自のルールとルールグループを追加) の順に選択します。
- [Rule type] (ルールタイプ) で、[Rule Builder] (ルールビルダー) を選択します。
- [Name] (名前) で、このルールを特定するための名前を入力します。
- [Type] (タイプ) で、[Regular rule] (通常のルール) を選択します。
- [If a request] (リクエストが次の場合) で、[matches a statement] (ステートメントに一致) を選択します。
- [Statement] (ステートメント) の [Inspect] (検査) で、[Single header] (単一ヘッダー) を選択します。
[Header field name] (ヘッダーフィールド名) で、フィールドの名前を入力します。例: User-Agent。
[Match type] (一致タイプ) で、[Contains string] (文字列を含む) を選択します。
[String to match] (照合する文字列) で、ブロックする特定の User-Agent の値を入力します。
(オプション) [Text transformation] (テキスト変換) を選択するか、[None] (なし) を選択します。 - [Action] (アクション) で [Block] (ブロック) を選択します。
- [Add Rule] (ルールを追加) を選択します。
- (オプション) [Set Rule Priority] (ルール優先度を設定) で、ルールを選択し、優先順位を移動します。ルールは、表示される順序で処理されます。詳細については、ウェブ ACL でのルールとルールグループの処理順序を参照してください。
- [保存] を選択します。

関連するコンテンツ
- 質問済み 3ヶ月前lg...
- 質問済み 6ヶ月前lg...
- 質問済み 5年前lg...
- AWS公式更新しました 10ヶ月前
- AWS公式更新しました 10ヶ月前
- AWS公式更新しました 10ヶ月前