View a markdown version of this page

Amazon CloudFront AWS WAF での の使用 - AWS WAF、 AWS Firewall Manager AWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

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

更新されたエクスペリエンスを使用して、 コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「コンソールの使用」を参照してください。

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

Amazon CloudFront AWS WAF での の使用

Amazon CloudFront 機能 AWS WAF で を使用する方法について説明します。

保護パック (ウェブ ACL) を作成するときに、 AWS WAF で検査する 1 つ以上の CloudFront ディストリビューションを指定できます。CloudFront は、個々のテナントを保護する標準ディストリビューションと、単一の共有設定テンプレートを使用して複数のテナントを保護するマルチテナントディストリビューションの 2 種類のディストリビューションをサポートしています。 AWS WAF は、保護パック (ウェブ ACL) で定義したルールに基づいて、両方のディストリビューションタイプのウェブリクエストを検査し、タイプごとに実装パターンが異なります。

がさまざまなディストリビューションタイプと AWS WAF 連携する方法

ディストリビューションタイプ

AWS WAF は、標準およびマルチテナントディストリビューション CloudFront ディストリビューションの両方にウェブアプリケーションファイアウォール機能を提供します。

標準ディストリビューション

標準ディストリビューションの場合、 はディストリビューションごとに 1 つの保護パック (ウェブ ACL) を使用して保護 AWS WAF を追加します。この保護を有効にするには、既存の保護パック (ウェブ ACL) を CloudFront ディストリビューションに関連付けるか、CloudFront コンソールでワンクリック保護を使用します。これにより、保護パック (ウェブ ACL) を変更すると、それに関連付けられたディストリビューションにのみ影響するため、各ディストリビューションのセキュリティコントロールを個別に管理できます。

CloudFront ディストリビューションを保護するこの簡単な方法は、個々のドメインに単一の保護パック (ウェブ ACL) からの特定の保護を提供するのに最適です。

標準ディストリビューションに関する考慮事項
  • 保護パック (ウェブ ACL) の変更は、関連付けられたディストリビューションにのみ影響します

  • 各ディストリビューションには、独立した保護パック (ウェブ ACL) 設定が必要です

  • ルールとルールグループはディストリビューションごとに個別に管理されます

マルチテナントディストリビューション

マルチテナントディストリビューションの場合、 は単一の保護パック (ウェブ ACL) を使用して複数のドメインに保護 AWS WAF を追加します。マルチテナントディストリビューションによって管理されるドメインは、ディストリビューションテナントと呼ばれます。マルチテナントディストリビューション AWS WAF の保護は、マルチテナントディストリビューションの作成プロセス中または作成後に、CloudFront コンソールでのみ有効にできます。ただし、保護パック (ウェブ ACL) への変更は、 AWS WAF 引き続きコンソールまたは API を通じて管理されます。

マルチテナントディストリビューションは、次の 2 つのレベルで AWS WAF 保護を可能にする柔軟性を提供します。

  • マルチテナントディストリビューションレベル – 関連付けられた保護パック (ウェブ ACL) は、そのディストリビューションを共有するすべてのアプリケーションに適用されるベースラインセキュリティコントロールを提供します

  • ディストリビューションテナントレベル – マルチテナントディストリビューション内の個々のテナントは、追加のセキュリティコントロールを実装したり、マルチテナントディストリビューション設定をオーバーライドしたりするために、独自の保護パック (ウェブ ACL) を持つことができます

これらの 2 つの階層により、マルチテナントディストリビューションは、個々のディストリビューションのセキュリティをカスタマイズする能力を失うことなく、複数のドメイン間で AWS WAF 保護を共有するのに最適です。

マルチテナントディストリビューションに関する考慮事項

  • 個々のディストリビューションテナントは、関連するマルチテナントディストリビューションに関連付けられている保護パック (ウェブ ACL) に加えられた変更を継承します

  • 特定のディストリビューションテナントに関連付けられた保護パック (ウェブ ACL) は、マルチテナント保護パック (ウェブ ACL) レベルで設定された設定をオーバーライドできます

  • マネージドルールグループは、ディストリビューションレベルとディストリビューションテナントレベルの両方で実装できます

  • アプリケーション識別子をログに保存して、ディストリビューション別にセキュリティイベントを追跡できます

AWS WAF ディストリビューションタイプ別の機能

保護パック (ウェブ ACL) の実装を比較する
AWS WAF 機能 標準ディストリビューション マルチテナントディストリビューション
保護パック (ウェブ ACL) の関連付け ディストリビューションごとに 1 つの保護パック (ウェブ ACL) オプションでテナント固有の保護パック (ウェブ ACL) を使用して、テナント間で保護パック (ウェブ ACL) を共有できます
ルールの管理 ルールが 1 つのディストリビューションに影響する マルチテナントディストリビューションルールは、関連付けられたすべてのテナントに影響します。ディストリビューションテナント固有のルールは、そのテナントにのみ影響します
マネージドルールグループ 個々のディストリビューションに適用 すべてのテナントにマルチテナントディストリビューションレベルで、または特定のアプリケーションにテナントレベルで適用できます
ログ記録 標準 AWS WAF ログ ログには、セキュリティイベント属性のテナント識別子が含まれます

CloudFront 定額料金プラン AWS WAF での の使用

CloudFront 定額料金プランは、トラフィックの急増や攻撃に関係なく、Amazon CloudFront グローバルコンテンツ配信ネットワーク (CDN) と複数の AWS のサービス および 機能を月額料金で組み合わせます。

定額料金プランには、シンプルな月額料金の以下の AWS のサービス および 機能が含まれます。

  • CloudFront CDN

  • AWS WAF および DDoS 保護

  • ボット管理と分析

  • Amazon Route 53 DNS

  • Amazon CloudWatch Logs の取り込み

  • TLS 証明書

  • サーバーレスエッジコンピューティング

  • 毎月の Amazon S3 ストレージクレジット

プランは、アプリケーションのニーズに合わせて、無料、プロ、ビジネス、プレミアムの各階層で利用できます。プランは、ベストレートを取得するために年間コミットメントを必要としません。無料プランから始めて、より多くの機能や使用量にアップグレードできます。

プランと機能の詳細なリストについては、「Amazon CloudFront デベロッパーガイド」の「CloudFront 定額料金プラン」を参照してください。 Amazon CloudFront

重要

料金プランを使用する場合は、有効な AWS WAF 保護パック (ウェブ ACL) を CloudFront ディストリビューションに関連付ける必要があります。pay-as-you-goに切り替えない限り、保護パック (ウェブ ACL) の関連付けを削除することはできません。

AWS WAF ウェブ ACL はディストリビューションに関連付けられている必要がありますが、セキュリティ設定を完全に制御できます。ウェブ ACL で有効または無効にするルールを調整して保護をカスタマイズし、セキュリティ要件に合わせてルール設定を変更できます。ウェブ ACL ルールの管理については、AWS WAF 「 ルール」を参照してください。

CloudFront による AI トラフィックの収益化

AI トラフィック収益化は、Amazon CloudFront ディストリビューションに関連付けられた AWS WAF ウェブ ACL リソースでのみ使用できます。支払いの検証と決済は CloudFront エッジロケーションで行われ、世界中のエージェントのレイテンシーを最小限に抑えます。

CloudFront Functions と Lambda@Edge で AI トラフィック収益化を使用する場合の考慮事項

Monetize ルールがあるディストリビューションで CloudFront Functions または Lambda@Edge を使用する場合は AWS WAF、 AWS WAF生成されたレスポンスに対して次の動作に注意してください。

AWS WAFが生成したレスポンス (402 Payment Required Challenge)

ビューワーレスポンス関数 (CloudFront Functions および Lambda@Edge) は AWS WAF、生成された 402 レスポンスでは実行されません。これらの関数を使用して、支払いが必要なチャレンジをカスタマイズすることはできません。また、ヘッダーを追加したり変更したりすることもできません。402 レスポンスにカスタムヘッダーを追加する必要がある場合は (CORS や分析ヘッダーなど)、代わりにレスポンスヘッダーポリシーを使用します。レスポンスヘッダー ポリシーは AWS WAF、生成されたレスポンスに適用されます。

CloudFront Functions とレスポンスヘッダーポリシーの詳細については、以下を参照してください。

有料レスポンス (決済後 200)

支払い決済が成功すると、オリジンレスポンスはビューワーレスポンス関数を含む通常の CloudFront レスポンスパイプラインを通過します。ビューワーレスポンス関数は、支払い後にエージェントが受け取るレスポンスを変更できます。たとえば、ステータスコードを変更したり、ヘッダーを削除したりできます。

CloudFront による AI トラフィックの収益化

AI トラフィック収益化は、Amazon CloudFront ディストリビューションに関連付けられたウェブ ACLs でのみ使用できます。支払い検証とアクセストークンの発行は CloudFront エッジロケーションで行われ、世界中のエージェントのレイテンシーを最小限に抑えます。

CloudFront のみを使用する理由

収益化には以下が必要です。

  • エッジネイティブ支払い検証 – 支払い証明は、オリジンへのラウンドトリップなしでエッジで検証されます。

  • グローバルトークン発行 – スコープ付きアクセストークンはエッジで発行され、同じディストリビューションを提供するすべてのエッジロケーションによって優先されます。

  • 料金マニフェストの生成 – 料金詳細を含む 402 レスポンスがエッジで生成され、フローがmachine-to-machine支払いプロトコルのレイテンシーターゲットを下回ったままになります。

リージョンウェブ ACLs (Application Load Balancer、、、Cognito、App Runner、Verified Access) は、Monetize アクションをサポートしていません。リージョンウェブ ACL で Monetize ルールが設定されている場合、ルールはスキップされ、リクエストは次のルールに進みます。

収益化されたコンテンツによるキャッシュ動作

収益化されたリソースには、あるエージェントの有料アクセスがキャッシュされたコンテンツを別のエージェントに提供できないようにするための特別なキャッシュ設定が必要です。

収益化されたパスの推奨キャッシュ設定:

設定Reason
キャッシュポリシーCachingDisabled またはカスタムエージェント間のキャッシュ共有を防止
オリジンリクエストポリシーヘッダーX-Agent-IdX-Access-Tokenヘッダーを含めるオリジンがエージェント固有のトークンを検証することを許可する
TTL0 (またはコンテンツ鮮度のニーズごとに短い)各エージェントリクエストが によって評価されるようにします AWS WAF

パフォーマンスのためにキャッシュが必要な場合は、エージェントごとのキャッシュキーを設定します。

  • カスタムキャッシュポリシーを使用してキャッシュキーに X-Agent-Idを追加します。

  • これにより、各エージェントは、有料コンテンツを他のエージェントに提供せずに、支払い後に独自のキャッシュされたコピーを受け取ることができます。

重要

エージェントごとのキャッシュキーなしでキャッシュを有効にすると、支払い検証なしでキャッシュから後続のエージェントに有料レスポンスが提供される場合があります。収益化されたパスのキャッシュキーには、常にエージェント ID を含めます。

レイテンシー特性

[Phase] (フェーズ)一般的なレイテンシー注意事項
分類 + 402 生成<10 ミリ秒エッジでインラインで実行
支払いの検証<30 ミリ秒検証は暗号化され、外部呼び出しは行われません
トークン発行 + オリジンフェッチ標準 CloudFront レイテンシー通常のリクエストと同じ
追加オーバーヘッドの合計<50 ミリ秒標準リクエストのレイテンシーを超える

CloudFront ディストリビューション設定

収益化を有効にするために CloudFront ディストリビューション設定を変更する必要はありません。この機能は、 AWS WAF ウェブ ACL と保護パックの設定によって完全に制御されます。

以下のことを確認してください。

  • ウェブ ACL の関連付け – ディストリビューションには、Bot Control と収益化ルールを含む AWS WAF ウェブ ACL が関連付けられている必要があります。

  • オリジンレスポンスヘッダー – オリジンがCache-Controlヘッダーを設定する場合は、収益化されたパスのエージェントごとのキャッシュ戦略と競合しないことを確認します。

  • カスタムエラーページ – 4xx レスポンスの CloudFront カスタムエラーページは AWS WAF、生成された 402 レスポンスには適用されません。料金マニフェストは から直接提供されます AWS WAF。