はじめるには AWS WAF - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

はじめるには AWS WAF

このチュートリアルでは、 AWS WAF を使用して次のタスクを実行する方法を説明します。

  • セットアップ AWS WAF。

  • AWS WAF コンソールのウィザードを使用して Web アクセスコントロールリスト (ウェブ ACL) を作成します。

  • AWS AWS WAF ウェブリクエストを検査したいリソースを選択します。このチュートリアルでは、Amazon の手順について説明します CloudFront。プロセスは、Amazon API ゲートウェイ REST API、Application Load Balancer、 AWS AppSync GraphQL API、Amazon Cognito ユーザープール、 AWS App Runner サービス、 AWS または検証済みアクセスインスタンスと基本的に同じです。

  • ウェブリクエストのフィルタリングに使用するルールおよびルールグループを追加します。例えば、リクエストの発生元の IP アドレスと、攻撃者によってのみ使用されるリクエスト内の値を指定できます。各ルールについて、一致するウェブリクエストの処理方法を指定します。ウェブリクエストをブロックしたりカウントしたり、CAPTCHA のようなボットチャレンジを実行することもできます。ウェブ ACL 内で定義する各ルールと、ルールグループ内で定義する各ルール用に、アクションを定義します。

  • ウェブ ACL のデフォルトのアクション (Block または Allow) を指定します。これは、ウェブ ACL のルールがリクエストを明示的に許可またはブロックしていない場合に実行されるアクションです。 AWS WAF

注記

AWS 通常、このチュートリアルで作成したリソースに対して請求されるのは 1 日あたり 0.25 USD 未満です。チュートリアルを終了したら、不要な料金が発生しないようにリソースを削除することをお勧めします。

ステップ 1: セットアップ AWS WAF

セットアップ の一般的なセットアップ手順をまだ実行していない場合、今すぐ実行してください。

ステップ 2: ウェブ ACL を作成する

AWS WAF コンソールは、リクエストの発信元の IP アドレスやリクエストの値など、 AWS WAF 指定した条件に基づいてウェブリクエストをブロックまたは許可するように設定するプロセスを順を追って説明します。このステップでは、ウェブ ACL を作成します。 AWS WAF ウェブ ACL の詳細については、を参照してくださいウェブアクセスコントロールリスト (ウェブ ACL)

ウェブ ACL を作成するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/wafv2/ AWS WAF のコンソールを開きます。

  2. AWS WAF ホームページから [ウェブ ACL の作成] を選択します。

  3. [Name] (名前) で、このウェブ ACL の識別に使用する名前を入力します。

    注記

    ウェブ ACL の作成後は、名前を変更することはできません。

  4. (オプション) 必要に応じて、[Description - optional] (説明 - オプション) に、ウェブ ACL の詳しい説明を入力します。

  5. CloudWatch メトリクス名については、該当する場合はデフォルト名を変更します。有効な文字については、コンソールのガイダンスに従ってください。名前には、特殊文字、空白や、「All」および「Default_Action」などの AWS WAF用に予約されたメトリクス名を使用できません。

    注記

    ウェブ ACL CloudWatch を作成した後でメトリックス名を変更することはできません。

  6. [リソースタイプ] には、[CloudFrontディストリビューション] を選択します。ディストリビューションの場合 CloudFront 、リージョンは自動的に Global (CloudFront) に設定されます

  7. (オプション) [ AWS 関連リソース]-[オプション] では、[リソースの追加 AWS ] を選択します。ダイアログボックスで、関連付けるリソースを選択し、[Add] (追加) を選択します。 AWS WAF は [Describe web ACL and associated AWS resources] (ウェブ ACL と関連付けられた リソースの説明) ページに戻します。

  8. [Next] (次へ) を選択します。

ステップ 3: 文字列一致ルールを追加する

このステップでは、文字列一致ステートメントを使用してルールを作成し、一致リクエストの処理方法を指定します。文字列一致ルールステートメントは、 AWS WAF がリクエストで検索する文字列を識別します。通常、文字列は印刷可能な ASCII 文字で構成されますが、16 進数 0x00 〜 0xFF (10 進数 0 〜 255) の任意の文字を指定できます。検索する文字列を指定するだけでなく、ヘッダー、クエリ文字列、リクエストボディなど、検索するウェブリクエストコンポーネントを指定します。

このステートメントタイプは、ウェブリクエストコンポーネントで動作し、次のリクエストコンポーネント設定が必要です。

  • [リクエストコンポーネント] — ウェブリクエストの検査対象部分 (クエリ文字列や本文など)。

    警告

    リクエストコンポーネントのボディ、JSON ボディヘッダー、または Cookie を調べる場合は、 AWS WAF 検査できるコンテンツの量の制限についてお読みください。での大きすぎるウェブリクエストコンポーネントの処理 AWS WAF

    ウェブリクエストコンポーネントの詳細については、「ウェブリクエストコンポーネント」を参照してください。

  • オプションのテキスト変換 — AWS WAF リクエストコンポーネントを検査する前に実行したい変換。例えば、小文字に変換したり、空白を正規化したりできます。複数の変換を指定すると、 AWS WAF 記載されている順序で処理されます。詳細については、テキスト変換 を参照してください。

AWS WAF ルールに関する追加情報については、を参照してくださいAWS WAF 規則

文字列一致ルールステートメントを作成するには
  1. [Add rules and rule groups] (ルールとルールグループの追加) ページで、[Add rules] (ルールの追加)、[Add my own rules and rule groups] (独自のルールとルールグループの追加)、[Rule builder] (ルールビルダー)、[Rule visual editor] (ルールビジュアルエディタ) の順に選択します。

    注記

    コンソールには、ルールビジュアルエディタルール JSON エディタが用意されています。JSON エディタを使用すると、ウェブ ACL 間で設定を簡単にコピーできます。これは、ネストのレベルが複数あるルールセットなど、より複雑なルールセットに必要です。

    この手順では、ルールビジュアルエディタを使用します。

  2. [Name] (名前) で、このルールの識別に使用する名前を入力します。

  3. [Type] (タイプ) で、[Regular rule] (通常のルール) を選択します。

  4. [If a request] (リクエストの状態) で、[matches the statement] (ステートメントに一致) を選択します。

    その他のオプションは、論理ルールステートメントタイプ用です。これらを使用して、他のルールステートメントの結果を組み合わせたり、否定したりできます。

  5. 「Statement」 の「Inspect」で、ドロップダウンを開き、検査するウェブリクエストコンポーネントを選択します。 AWS WAF この例では、[Header] (ヘッダー) を選択します。

    [Header] (ヘッダー) を選択した場合は、 AWS WAF で検査するヘッダーも指定します。User-Agent と入力します。この値では大文字と小文字は区別されません。

  6. [Match type] (一致タイプ) で、指定した文字列が User-Agent ヘッダーに表示される場所を選択します。

    この例では、[Exactly matches string] (文字列に完全一致) を選択します。これは、各ウェブリクエストのユーザーエージェントヘッダーに、 AWS WAF 指定した文字列と同じ文字列がないかを検査することを示しています。

  7. [String to match] (照合する文字列) で、 AWS WAF で検索する文字列を指定します。[String to match] (照合する文字列) は最大 200 文字です。base64 でエンコードされた値を指定する場合、エンコード前の長さで最大 200 文字指定できます。

    この例では、と入力します。MyAgent AWS WAF User-AgentMyAgentウェブリクエストのヘッダーに値があるかどうかを調べます。

  8. [Text transformation] (テキスト変換) を [None] (なし) のままにします。

  9. [Action] (アクション) で、ウェブリクエストに一致したときにルールによって実行されるアクションを選択します。この例では、[Count] (カウント) を選択し、他の選択肢はそのままにしておきます。カウントアクションにより、ルールに一致するウェブリクエストのメトリクスが作成されますが、リクエストが許可またはブロックされるかどうかには影響しません。アクションの選択の詳細については、「ルールアクション」および「ウェブ ACL ルールおよびルールグループの評価」を参照してください。

  10. [Add rule] (ルールの追加) を選択します。

ステップ 4: AWS マネージドルールルールグループを追加する

AWS Managed Rulesでは、お客様が使用できる一連のマネージドルールグループが提供され、 AWS WAF そのほとんどはお客様に無料で提供されます。ルールグループの詳細については、「ルールグループ」を参照してください。 AWS マネージドルールルールグループをこのウェブ ACL に追加します。

AWS マネージドルールルールグループを追加するには
  1. [Add rules and rule groups] (ルールとルールグループの追加) ページで、[Add rules] (ルールの追加) を選択し、[Add managed rule groups] (マネージドルールグループの追加) を選択します。

  2. [マネージドルールグループを追加] ページで、[AWS マネージドルールグループ] のリストを展開します。( AWS Marketplace 出品者向けの出品情報も表示されます。 それらの商品を購読すると、 AWS マネージドルールルールグループと同じ方法で使用できます。)

  3. 追加するルールグループについて、次を実行します。

    1. [Action] (アクション) 列で、[Add to web ACL] (ウェブ ACL に追加) 切り替えボタンをオンにします。

    2. [Edit] (編集) を選択し、ルールグループの [Rules] (ルール) リストで [Override all rule actions] (すべてのルールアクションをオーバーライド) ドロップダウンを開いて [Count] を選択します。これにより、ルールグループ内のすべてのルールのアクションがカウントのみに設定されます。これにより、ルールグループのルールを使用する前に、ルールグループのすべてのルールがウェブリクエストでどのように動作するかを確認できます。

    3. [Save rule] (ルールを保存) を選択します。

  4. [Add managed rule groups] (マネージドルールグループを追加) ページで、[Add rules] (ルールを追加) を選択します。これにより、[Add rules and rule groups] (ルールとルールグループを追加) ページに戻ります。

ステップ 5: ウェブ ACL の設定を完了する

ルールとルールグループをウェブ ACL 設定に追加したら、ウェブ ACL 内のルールの優先順位を管理し、メトリクス、タグ付け、ログ記録などの設定を行うことで完了します。

ウェブ ACL の設定を完了するには
  1. [Add rules and rule groups] (ルールとルールグループの追加) ページで、[Next] (次へ) を選択します。

  2. ルール優先度の設定」ページでは、ウェブ ACL 内のルールとルールグループの処理順序を確認できます。 AWS WAF リストの一番上から処理します。処理順序は、ルールを上下に移動することで変更できます。これを行うには、リストで 1 つを選択し、[Move up] (上へ移動) または [Move down] (下へ移動) を選択します。ルーティングの優先度の詳細については、「ウェブ ACL でのルールおよびルールグループの処理順序」をご覧ください。

  3. [次へ] を選択します。

  4. Amazon CloudWatchメトリクスのConfigure metricsページでは、ルールとルールグループの計画メトリックスと、ウェブリクエストのサンプリングオプションを確認できます。サンプリングされたリクエストの表示方法については、「ウェブリクエストのサンプルの表示」を参照してください。Amazon CloudWatch メトリックスについて詳しくは、を参照してくださいAmazon によるモニタリング CloudWatch

    ウェブトラフィックメトリックスの概要には、 AWS WAF コンソールのウェブ ACL ページの「トラフィック概要」タブでアクセスできます。コンソールダッシュボードには、ウェブ ACL の Amazon CloudWatch メトリックスの概要がほぼリアルタイムで表示されます。詳細については、「ウェブ ACL トラフィック概要ダッシュボード」を参照してください。

  5. [次へ] を選択します。

  6. [Review and create web ACL] (ウェブ ACL の確認と作成) ページで、設定を確認し、[Create web ACL] (ウェブ ACL の作成) を選択します。

ウィザードによって [Web ACL] (ウェブ ACL) ページに戻ります。このページには、新しいウェブ ACL が一覧表示されます。

ステップ 6: リソースをクリーンアップする

これでチュートリアルは完了です。 AWS WAF アカウントに追加料金が発生しないようにするには、 AWS WAF 作成したオブジェクトをクリーンアップしてください。または、を使用して本当に管理したいウェブリクエストに合わせて設定を変更することもできます。 AWS WAF

注記

AWS 通常、このチュートリアルで作成したリソースについて、1 日あたり 0.25 USD 未満で請求されます。終了したら、不要な料金が発生しないようにリソースを削除することをお勧めします。

AWS WAF 料金が発生するオブジェクトを削除するには
  1. [Web ACL] (ウェブ ACL) ページで、リストからウェブ ACL を選択し、[Edit] (編集) を選択します。

  2. AWS 関連リソース」タブでは、関連する各リソースについて、リソース名の横にあるラジオボタンを選択し、「関連付け解除」を選択します。これにより、ウェブ ACL とリソースの関連付けが解除されます。 AWS

  3. 次の各画面で、[Web ACL] (ウェブ ACL) ページに戻るまで [Next] (次へ) を選択します。

    [Web ACL] (ウェブ ACL) ページで、リストからウェブ ACL を選択し、[Delete] (削除) を選択します。

ルールおよびルールステートメントは、ルールグループおよびウェブ ACL 定義の外部には存在しません。ウェブ ACL を削除すると、ウェブ ACL で定義した個々のルールがすべて削除されます。ウェブ ACL からルールグループを削除する場合は、そのグループへの参照を削除するだけです。