0Pricing
AWS Security Academy · レッスン

CloudFrontとALBへのWAFの関連付け

適切なエッジサービスまたはロードバランサーの前段にWAFを配置します。

「CloudFrontとALBへのWAFの関連付け」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。

WAF にはホストが必要

WAF は単独で動作するアプライアンスではありません。リクエストを WAF に転送するリソースに関連付ける必要があります。対応している統合先は、CloudFront、Application Load Balancer(ALB)、API Gateway、AppSync、Cognito user pools、App Runnerです。WAF をどこに関連付けるかによって、検査が行われる場所が決まります。

エッジでの CloudFront

WAF をCloudFrontディストリビューションに関連付けると、リクエストはオリジンに到達する前にAWS エッジロケーションで検査されます。これにより、ユーザーに最も近い場所で攻撃をブロックし、バックエンドの負荷を軽減できます。また、グローバルに機能します。エッジでのフィルタリング効果が特に大きい、公開 Web サイトやコンテンツ配信に適しています。

リージョンでの ALB

WAF をApplication Load Balancerに関連付けると、リクエストはリージョンのロードバランサーに到達した時点で検査されます。これは、内部アプリケーション、ALB の背後にある API、または CloudFront を経由しないトラフィックに適しています。Web ACL では、ALB のリージョンで REGIONAL スコープを使用する必要があります。

スコープを一致させる必要がある

Web ACL には、(グローバルな us-east-1 の)CLOUDFRONT スコープとREGIONAL スコープがあります。リージョン Web ACL を CloudFront に関連付けたり、CloudFront Web ACL を ALB に関連付けたりすることはできません。誤ったスコープを選択することは、試験でも取り上げられる一般的なデプロイエラーです。

複数レイヤーでの防御

最大限の保護が必要な場合は、CloudFront を ALB の前段に配置し、両方に WAF を関連付けることができます。つまり、グローバルなエッジフィルタリング用の CloudFront Web ACL と、バックストップとして ALB に設定するリージョン Web ACL を使用します。これにより、CloudFront を迂回して ALB に直接到達するリクエストからも保護できます。

オリジンの保護

攻撃者が ALB に直接到達できると、CloudFront とその WAF を迂回されてしまいます。これを緩和するには、ALB のセキュリティグループをCloudFront の IP 範囲に限定するか、CloudFront が追加し、ALB または WAF が検証するカスタムシークレットヘッダーを使用します。これにより、トラフィックが実際にエッジを経由したことを確認できます。

# Origin protection pattern
CloudFront adds header: X-Origin-Verify: <secret>
WAF on ALB blocks requests missing that header

API Gateway と AppSync

WAF は、どちらもリージョンリソースであるAPI Gatewayの REST API とAppSyncの GraphQL API にも関連付けられます。これにより、別個のロードバランサーを用意せずに、インジェクションや悪用から API ベースのバックエンドを保護できます。サーバーレス API では、ここが自然な適用ポイントです。

Cognito の保護

WAF はCognito user poolsに関連付けて、認証エンドポイントをクレデンシャルスタッフィングやボットによるサインアップの悪用から保護できます。Account Takeover Prevention のマネージドルールグループとの相性も良好です。これにより、頻繁に攻撃対象となる ID フローを保護できます。CloudFront でのエッジ検査を組み合わせれば、レイテンシーをほとんど増やさず、リージョンの ALB で処理するより早い段階で攻撃をブロックできます。

1 リソースにつき 1 Web ACL

1 つのリソースに関連付けられるWeb ACL は一度に 1 つだけですが、1 つの Web ACL で多数のリソースを保護できます。異なるポリシーを適用するには、個別の Web ACL を作成します。共有するルールをマネージドルールグループまたはカスタムルールグループに集約すると、複数の Web ACL 間で一貫性を保てます。

関連付け先の選択

トラフィックの流れに基づいて判断します。公開されたグローバルコンテンツにはCloudFront、リージョン内または内部のアプリケーションにはALB、サーバーレス API にはAPI Gateway または AppSyncが適しています。迷った場合はエッジに関連付け、攻撃者が迂回できないようオリジンも保護してください。

全体の整理

WAF の保護効果は、配置場所によって決まります。スコープをリソースに一致させ、公開アプリケーションではエッジへの関連付けを優先し、バックストップとして ALB にも WAF を配置して、オリジンを CloudFront に限定します。これらの配置方法は、SCS-C02 のネットワーク保護シナリオで繰り返し登場します。

簡単な確認

WAF の関連付けに関する知識を適用してください。

まとめ

WAF は、CloudFront、ALB、API Gateway、AppSync、Cognito、App Runner などのリソースに関連付ける必要があります。CloudFrontはエッジでグローバルに検査します。一方、ALB などのその他のリソースはリージョンで検査し、REGIONAL スコープの Web ACL が必要です。エッジと ALB の両方に WAF を配置し、シークレットヘッダーまたは CloudFront の IP 範囲によってオリジンを保護し、攻撃者がエッジのフィルタリングを迂回できないようにします。1 つのリソースには 1 つの Web ACL を関連付けます。

よくある質問

「CloudFrontとALBへのWAFの関連付け」レッスンは無料ですか?

はい。「CloudFrontとALBへのWAFの関連付け」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。

「CloudFrontとALBへのWAFの関連付け」で何を学びますか?

適切なエッジサービスまたはロードバランサーの前段にWAFを配置します。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AWS Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「CloudFrontとALBへのWAFの関連付け」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAWS Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. AWS WAFがリクエストを検査する仕組み
  2. ルール、ルールグループ、Web ACL
  3. マネージドルールとレート制限
  4. CloudFrontとALBへのWAFの関連付け
← AWS Security Academyに戻る