

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

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

# で転送された IP アドレスを使用する AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

このセクションは、ウェブリクエストの IP アドレスを使用するルールステートメントに適用されます。デフォルトでは、 はウェブリクエストオリジンの IP アドレス AWS WAF を使用します。ただし、ウェブリクエストが 1 つ以上のプロキシまたはロードバランサーを通過する場合、ウェブリクエストの発信元には、クライアントの発信アドレスではなく、最後のプロキシのアドレスが含まれます。この場合、通常、発信元のクライアントアドレスは別の HTTP ヘッダーに転送されます。このヘッダーは通常 `X-Forwarded-For` (XFF) ですが、別のヘッダーにすることもできます。

**IP アドレスを使用するルールステートメント**  
IP アドレスを使用するルールステートメントは次のとおりです。
+ [IP セット一致](waf-rule-statement-type-ipset-match.md) - IP セットで定義されているアドレスと一致する IP アドレスを検査します。
+ [地理的一致](waf-rule-statement-type-geo-match.md) - IP アドレスを使用して発信元の国と地域を特定し、それを国のリストと照合します。
+ [ASN 一致](waf-rule-statement-type-asn-match.md) - IP アドレスを使用して AS 番号 (ASN) を判別し、ASN のリストに対して ASN を照合します。
+ [レートベースのルールステートメントの使用](waf-rule-statement-type-rate-based.md) - IP アドレスでリクエストを集約して、個々の IP アドレスがリクエストを過度に高いレートで送信しないようにできます。IP アドレスの集約は、単独で使用することも、他の集約キーと組み合わせて使用することもできます。

ウェブリクエストのオリジンを使用する代わりに、 `X-Forwarded-For` ヘッダーまたは別の HTTP ヘッダーのいずれかから、これらのルールステートメントに転送された IP アドレスを使用する AWS WAF ように に指示できます。仕様を指定する方法の詳細については、個別のルールステートメントタイプのガイダンスを参照してください。

**注記**  
ヘッダーがない場合、 はそのヘッダーを「一致なし」として使用するステートメント AWS WAF を評価します。NOT ステートメントを「一致なし」の結果で使用すると、 は評価を「一致 AWS WAF 」に変換します。ヘッダーが見つからない場合、フォールバック動作はトリガーされません。無効なヘッダー値のみがトリガーされます。

**フォールバック動作**  
転送された IP アドレスを使用する場合、リクエストに指定された位置に有効な IP アドレスがない場合 AWS WAF に がウェブリクエストに割り当てる一致ステータスを指定します。
+ **MATCH** - ウェブリクエストをルールステートメントに一致するものとして扱います。 はルールアクションをリクエスト AWS WAF に適用します。
+ **一致なし** - ウェブリクエストをルールステートメントと一致しないものとして処理します。

**AWS WAF Bot Control で使用される IP アドレス**  
Bot Control マネージドルールグループは、IP アドレスを使用してボットを検証します AWS WAF。Bot Control を使用し、プロキシまたはロードバランサーを介してルーティングするボットを検証した場合は、カスタムルールを使用して明示的に許可する必要があります。例えば、転送された IP アドレスを使用して検証済みボットを検出および許可するカスタム IP セット一致ルールを設定できます。ルールを使用して、さまざまな方法でボット管理をカスタマイズできます。説明と例については、「[AWS WAF ボットコントロール](waf-bot-control.md)」を参照してください。

**転送された IP アドレスの使用に関する一般的な考慮事項**  
転送された IP アドレスを使用する前に、次の一般的な注意事項に留意してください。
+ ヘッダーは途中でプロキシによって変更でき、プロキシはヘッダーをさまざまな方法で処理することがあります。
+ 攻撃者は、 AWS WAF 検査をバイパスしようとしてヘッダーの内容を変更する可能性があります。
+ ヘッダー内の IP アドレスは、形式が正しくないか、無効である可能性があります。
+ 指定したヘッダーは、リクエストにまったく存在しない可能性があります。

**で転送された IP アドレスを使用する際の考慮事項 AWS WAF**  
次のリストでは、転送された IP アドレスを で使用するための要件と注意点について説明します AWS WAF。
+ 単一のルールでは、転送された IP アドレス用に 1 つのヘッダーを指定できます。ヘッダーの仕様では、大文字と小文字は区別されません。
+ レートベースのルールステートメントでは、ネストされたスコープステートメントは、転送された IP 設定を継承しません。転送された IP アドレスを使用する各ステートメントの設定を指定します。
+ 地理的一致、ASN 一致、レートベースのルールの場合、 は ヘッダーの最初のアドレス AWS WAF を使用します。たとえば、ヘッダーに が含まれている場合、 は `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF を使用します。 `10.1.1.1`
+ IP セットの一致では、ヘッダーの最初のアドレス、最後のアドレス、または任意のアドレスのいずれと照合するかを指定します。指定した場合、 はヘッダー内のすべてのアドレスに一致がないか、最大 10 個のアドレス AWS WAF を検査します。ヘッダーに 10 個を超えるアドレスが含まれている場合、 は最後の 10 個 AWS WAF を検査します。
+ 複数のアドレスを含むヘッダーでは、アドレスの間にカンマ区切り文字を使用する必要があります。リクエストでカンマ以外の区切り文字が使用されている場合、 AWS WAF はヘッダーの IP アドレスの形式が正しくないとみなします。
+ ヘッダー内の IP アドレスが不正な形式であるか、または無効である場合、 AWS WAF は、転送された IP 設定で指定したフォールバック動作に従って、ウェブリクエストをルールに一致するか一致しないかを指定します。
+ 指定したヘッダーがリクエストに存在しない場合、 AWS WAF はリクエストにルールをまったく適用しません。つまり、 AWS WAF はルールアクションを適用せず、フォールバック動作も適用しません。
+ IP アドレス用に転送された IP ヘッダーを使用するルールステートメントでは、ウェブリクエストの発信元によって報告された IP アドレスは使用されません。

**で転送された IP アドレスを使用するためのベストプラクティス AWS WAF**  
転送された IP アドレスを使用する場合は、次のベストプラクティスを使用します。
+ 転送された IP 設定を有効にする前に、リクエストヘッダーの可能な状態をすべて慎重に検討してください。目的の動作を実現するには、複数のルールを使用する必要がある場合があります。
+ 複数の転送された IP ヘッダーを検査したり、ウェブリクエストの発信元と転送された IP ヘッダーを検査したりするには、IP アドレスのソースごとに 1 つのルールを使用します。
+ 無効なヘッダーを持つウェブリクエストをブロックするには、ブロックするようにルールアクションを設定し、転送された IP 設定のフォールバック動作を一致するように設定します。

**転送された IP アドレスの JSON の例**  
次の地理一致ステートメントは、発信元の国が `US` である IP が `X-Forwarded-For` ヘッダーに含まれている場合にのみ一致します。

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

次のレートベースのルールは、`X-Forwarded-For` ヘッダーの最初の IP に基づいてリクエストを集約します。ルールは、ネストされた地理一致ステートメントに一致するリクエストのみをカウントし、地理一致ステートメントに一致するリクエストのみをブロックします。ネストされた地理一致ステートメントは、`X-Forwarded-For` ヘッダーを使用して、IP アドレスが `US` の発信元の国を示しているかどうかも判断します。示している場合、またはヘッダーが存在していても形式が間違っている場合、地理一致ステートメントは一致を返します。

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```