クラウド エンジニアブログ

AWS WAF + CloudFrontで実現するwebサイト・アプリ保護

2025年7月30日掲載

はじめに

ソニービズネットワークス 開発本部の池田です。

今回は、webサイト・アプリのセキュリティ対策として注目されているAWS WAF(Web Application Firewall)とAmazon CloudFrontの連携について解説します。
「webサイト・アプリのセキュリティが心配だけど、具体的にどう対策すればいいか分からない」「WAFは聞いたことがあるけど、実際の設定方法が分からない」といった悩みを抱えている方も多いのではないでしょうか。
今回は、そんな方々に向けて、AWS WAFとCloudFrontを組み合わせた実践的なwebサイト・アプリ保護の方法を、実際の設定手順とともにご紹介します。

AWS WAF + CloudFront とは

AWS WAFの役割

そもそもWAFとは、ファイアウォールやIPSなどほかのセキュリティツールでは防御できない、webサイト・アプリへの攻撃を検知・遮断できるのがWAFの特徴です。
AWS WAFは、webサイト・アプリを様々な攻撃から保護するクラウド型のファイアウォールサービスとなっており、SQLインジェクション、クロスサイトスクリプティング(XSS)、DDoS攻撃など、一般的なWeb攻撃をアプリケーションレベルで防御することができるAWS セキュリティサービスの1種です。

CloudFrontとの連携メリット

CloudFrontは、AWSが提供するコンテンツデリバリーネットワーク(CDN)です。
CDNとは、Webサイトやアプリなどのコンテンツを世界中の配信拠点(エッジサーバ)にキャッシュすることで、ユーザーに最も近い拠点からコンテンツを配信することができるサービスです。

ですので、WAFとCloudFrontはWebサイト、アプリを導入するうえでセキュリティとパフォーマンスの両面で欠かせない重要なサービスとなります。

WAFとCloudFrontを組み合わせることで、以下のような相乗効果が得られます。

  • エッジでの保護:世界中のエッジロケーションで攻撃をブロック
  • レイテンシの削減:ユーザーに近い場所での処理により応答速度向上
  • DDoS耐性の向上:分散された攻撃に対する強固な防御
  • コスト効率:オリジンサーバーへの負荷軽減によるコスト削減

この組み合わせにより、安全で快適なユーザ体験を実現することができます。

環境の構築と基本設定

環境準備

ここから実際にAWSコンソールで実装した場合にはどのようになるのかについて説明します。
今回は、シンプルなWebサイトを例に進めていきます。webコンテンツは既に作成しております。

環境の構築と基本設定の構成図

1. CloudFrontディストリビューションの作成

AWSコンソールでCloudFrontサービスにアクセスし、新しいディストリビューションを作成します。

新しいディストリビューションを作成

オリジンには、保護したいウェブサイトやアプリなどのコンテンツが存在する場所を指定します。
今回はS3に静的なWebサイトをホスティングしましたので、そちらを指定して設定しております。
その他にもビヘイビアやエラーページ等の設定も行っております。

Origin typeの指定

設定後はオリジン タブで確認できます。

オリジンタブ

今回の私が構築したwebサイトにアクセス

構築したwebサイトにアクセス

2. WAF Web ACLの作成

次に、AWS WAFでWeb ACL(Web Access Control List)を作成します。Web ACLは、トラフィックを許可またはブロックするルールの集合体です。
Web ACLは、AWSコンソールでWAFサービスにアクセス後、左メニューからWeb ACLsを選択し、”Create web ACL” から作成します。

左メニューからWeb ACLsを選択

■ ステップ1
web ACLの名前や紐づけるリソースを設定します。保護できるリソースは下記です。

  • Application Load Balancer
  • API Gateway
  • AppSync
  • CloudFront Distribution
  • CloudFront Distribution Tenant
  • Amplify Application

今回はCloudFrontですので、Global resourcesを選択し、先ほど作成したCloudFrontを紐づけております。

CloudFrontを紐づけ

■ ステップ2
WAFに適用するルールを追加することができます。

今回は、カスタムルールでレート制限のルールを作成致しました。

カスタムルールでレート制限のルールを作成

● マネージドルール設定

今回はカスタムルールで作成しましたが、AWS WAFにはAWS側で既に用意されているルールもございます。
マネージドルールを活用することで、簡単に基本的な保護を実装できます。

AWS側で既に用意されているルールには、下記のようなものがございます。

  • Core Rule Set
    ウェブアプリケーションに一般的に適用されるルールが含まれています。これにより、OWASPの出版物に記載されている脆弱性を含む、幅広い脆弱性の悪用から保護がされます。
  • Known Bad Inputs
    既知の悪意のあるリクエストパターンからブロック
  • IP Reputation List
    Amazonの脅威インテリジェンスに基づいたルールが含まれています。ボットやその他の脅威に関連するソースを自動ブロック上記の他にも多数のマネージドルールが用意されています。
    これらのマネージドルールを適用するだけで、多くの一般的な攻撃から保護できます。

■ ステップ3
設定したルールの優先順位を設定することができます。ルールは上から順に評価します。今回はルールが1つのみなのでこの設定は行いません。

構築したwebサイトにアクセス

■ ステップ4
Amazon CloudWatch メトリクスを使用してWAFの動作状況を監視できるようにします。これにより、ブロックされた攻撃の詳細や、誤検知の有無を確認できます。

WAFの動作状況を監視

■ ステップ5
最後は設定値の確認と作成になります。
適切に設定がされていることを確認後、下部にある “Create web ACL” ボタンからweb ACLを作成します。

これでCloudFrontとWAFの関連付けの設定ができましたので、webコンテンツの保護をすることができました。

ブルートフォース攻撃検証

最後に設定したWAFが適切に動作するのかを検証します。
上記でレート制限ルールを適応したため、今回はブルートフォース攻撃の検証を致します。

ブルートフォース攻撃とは

パスワードを破るために、考えられる全ての組み合わせを試す攻撃手法のことです。例えば、パスワード(パスコード)として 4 桁の PIN を使用する場合、「0000」から「9999」までの 10,000 通りの組み合わせをすべて試すことで、最終的に正しい答えにたどり着くことになります。このように力任せにパスワードを試行するため、総当たり攻撃とも呼ばれます。

検証方法
レート制限ルールでは、2分間で10以上のアクセスが来た際にブロックするというルールを適用したため、それ以上のリクエストを投げた際に特定のIPアドレスからの過度なリクエストが制限されることを確認します。

検証
まず下記スクリプトを実行し、curlコマンドを5秒の間隔で10回実行しました。

# 連続リクエストのテスト
@echo off
setlocal

set "total_requests=10"
set "interval_seconds=5"
set "url=https://your domain name"

echo Starting test: 2 minutes / 10 requests = 1 request every %interval_seconds% seconds

for /L %%i in (1,1,%total_requests%) do (
    echo [%%i] Sending request to %url%
    curl -s -o NUL -w "Status: %%{http_code}\n" %url%
    if not %%i==%total_requests% (
        timeout /t %interval_seconds% /nobreak >nul
    )
)

echo.
echo Test complete.
pause

 

その後ブラウザでアクセスを試してみると、
下記のようにブロックがされることを確認できました。
ブロックがされることを確認

また、ブルートフォース攻撃には地理的制限(ジオブロッキング)も効果的です。特定の国からのアクセスが不要な場合は、CloudFrontの地理的制限機能と組み合わせて使用することもお勧めします。

まとめ

いかがでしたでしょうか?AWS WAFとCloudFrontの組み合わせにより、比較的簡単にwebサイト・アプリの強固なセキュリティ対策を実装できることがお分かりいただけたと思います。

特に、AWS Managed Rulesを活用することで、専門的な知識がなくても基本的な攻撃から保護できる点は大きなメリットです。また、CloudFrontとの連携により、セキュリティ向上と同時にパフォーマンスの改善も実現できます。

重要なのは、一度設定して終わりではなく、継続的な監視と改善を行うことです。攻撃手法は日々進化しているため、定期的な見直しと最新の脅威情報への対応が欠かせません。

AWS WAF + CloudFrontは、運用負荷を抑えながらも高いセキュリティレベルを維持したい企業にとって、非常に有効な選択肢と言えるでしょう。まずは小さな環境から始めて、徐々に本格的な運用に移行することをお勧めします。

お役立ち資料をダウンロード

AWS セキュリティ対策ガイド

「AWS セキュリティ対策ガイド」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。

このコラムに関連する製品

  • AWSセキュリティ強化支援サービス

    AWSのセキュリティが不安な方へ
    運用負荷をおさえた効果的な対策強化を支援します

    詳細はこちら

  • 運用内製化支援~セキュリティ改善サービス

    ベストプラクティスに沿った改善案を提案し、運用の内製化を支援します。


    詳細はこちら

  • 仮想UTMソリューション WatchGuard Firebox Cloud

    AWS環境のネットワーク出入口対策

    詳細はこちら

関連コラム

このコラムに関連する
導入事例

このコラムに関連する
セミナーアーカイブ動画

AWS環境のセキュリティアセスメント

SHARE
シェアシェア ポストポスト
AWS環境のセキュリティアセスメント
SHARE
ポスト シェア