Azure Front Door
Azure Front DoorはMicrosoftのグローバルCDN・ロードバランサーサービスです。世界中に分散したPoP(Point of Presence)を活用して、Webアプリケーションの高速配信・高可用性・セキュリティを提供します。
Azure Front Doorの概要
Azure Front Doorは以下の機能を統合したサービスです。
- グローバルロードバランシング: 複数リージョンへのトラフィック分散
- CDN(コンテンツ配信ネットワーク): 静的コンテンツのエッジキャッシュ
- SSL/TLS終端: エッジでのHTTPS処理によるバックエンド負荷軽減
- WAF(Webアプリケーションファイアウォール): エッジでの脅威検知・ブロック
- パス・ベースルーティング: URLパスに基づくバックエンド振り分け
- 正常性プローブ: バックエンドの死活監視と自動フェイルオーバー
StandardとPremiumの違い
Azure Front Doorには Standard と Premium の2つのティアがあります。
機能比較表
| 機能 | Standard | Premium |
|---|---|---|
| CDN・キャッシュ | ✅ | ✅ |
| グローバルロードバランシング | ✅ | ✅ |
| SSL/TLS終端 | ✅ | ✅ |
| カスタムドメイン | ✅ | ✅ |
| パス・ベースルーティング | ✅ | ✅ |
| WebSocket対応 | ✅ | ✅ |
| WAF(マネージドルールセット) | ✅ Microsoft Default Ruleset | ✅ Microsoft Default Ruleset + Bot Manager |
| WAF(カスタムルール) | ✅ 基本的なカスタムルール | ✅ フル機能 |
| WAF(レート制限) | ✅ | ✅ |
| WAF(Bot Manager) | ❌ | ✅ |
| WAF(異常スコアリング) | ❌ | ✅ |
| Private Linkオリジン接続 | ❌ | ✅ |
| Microsoft脅威インテリジェンス | ❌ | ✅ |
| セキュリティレポート | 基本 | 詳細(WAFダッシュボード) |
| サポートSLA | 99.99% | 99.99% |
コスト比較
※ 価格は変動するため、最新情報はAzure公式価格ページを参照してください。
主なコスト構成要素
| コスト項目 | Standard | Premium |
|---|---|---|
| ベース料金(月額) | 約 $35 | 約 $330 |
| データ転送(送信) | 帯域ごとの段階料金 | 帯域ごとの段階料金(若干高め) |
| リクエスト料金 | HTTP/HTTPS リクエスト数 | HTTP/HTTPS リクエスト数 |
| WAFポリシー | 含む(基本機能) | 含む(フル機能) |
| Private Linkオリジン | 非対応 | 接続数ごとの追加料金 |
コスト選定のポイント
- Standardで十分なケース: 一般的なWebサイト、マネージドルールセットとカスタムルールのみで要件を満たせる場合、Bot対策が不要な社内システム
- Premiumが必要なケース: 金融・EC等でBot対策が重要なサービス、バックエンドをインターネット非公開にしたい場合(Private Link)、高度なセキュリティ分析・レポートが必要な場合
注意: PremiumはStandardの約10倍のベース料金です。WAFポリシーの複雑さや保護要件を整理したうえで選択してください。
WAFの詳細
WAF Standard でできること
Standard ティアでも基本的なWAF機能を利用できます。
✅ 利用可能な機能
1. Microsoft Default Ruleset (DRS)
- OWASP CRSベースのマネージドルールセット
- SQLインジェクション、XSS、LFI/RFI等の一般的な攻撃を自動ブロック
- Microsoftが定期的にルールを更新・管理
対応攻撃例:
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- ローカル/リモートファイルインクルード(LFI/RFI)
- コマンドインジェクション
- プロトコル違反
2. カスタムルール(基本)
- 送信元IPアドレスによる許可・拒否リスト
- HTTPヘッダー、クエリパラメータ、リクエストボディの条件マッチング
- 地理的ブロック(GeoMatch条件)
- レート制限ルール
// カスタムルールの例: 特定IPブロック
{
"name": "BlockSpecificIP",
"priority": 100,
"ruleType": "MatchRule",
"action": "Block",
"matchConditions": [
{
"matchVariables": [{ "variableName": "RemoteAddr" }],
"operator": "IPMatch",
"matchValues": ["203.0.113.0/24"]
}
]
}
3. レート制限
- 特定の条件(IP、パスなど)に基づいてリクエスト数を制限
- DDoS軽減に活用可能(ただし大規模DDoSはAzure DDoS Protectionが必要)
4. 検知モード / 防御モード
- 検知モード(Detection): ルールに一致しても実際にはブロックせず、ログのみ記録(初期導入・チューニング時に活用)
- 防御モード(Prevention): ルールに一致したリクエストをブロック
❌ Standard では利用できない機能
- Bot Managerルールセット: 悪意あるボット・スキャナーの自動識別・ブロック
- 異常スコアリングモード: 複数のルールマッチを累積スコアで判定(誤検知の削減)
- Microsoft脅威インテリジェンス統合: リアルタイムの脅威IPリストとの照合
- 詳細WAFダッシュボード: セキュリティイベントの可視化・分析レポート
WAF Premium でできること
Premium ティアでは、Standardの全機能に加えて以下が利用可能です。
Bot Manager ルールセット
Microsoftが管理するBot識別ルールセットです。
| Bot カテゴリ | 説明 | デフォルト動作 |
|---|---|---|
| 良性Bot(検証済み) | Googlebot、Bingbot等 | 許可 |
| 良性Bot(未検証) | 一般的なクローラー | ログ記録 |
| 悪意あるBot | スキャナー、攻撃ツール | ブロック |
| 不明Bot | カテゴリ不明 | ログ記録 |
Bot Managerにより、SEOクローラーへの影響なしに悪意あるボットを自動ブロックできます。
異常スコアリングモード
OWASP CRS の異常スコアリングモデルを採用しています。各ルールには重大度に応じたスコアが付与され、累計スコアが閾値を超えた場合のみブロックします。
軽微な違反: +1 点
中程度の違反: +2 点
重大な違反: +5 点
閾値デフォルト: 5 点以上でブロック
これにより単発の誤検知によるブロックを減らし、実際の攻撃のみをブロックする精度が向上します。
Microsoft 脅威インテリジェンス統合
Microsoftのセキュリティチームが収集した既知の悪意あるIPアドレス・URLに対して、リアルタイムで照合・ブロックします。
Private Linkオリジン接続(Premiumのみ)
バックエンド(App Service、Azure Kubernetes Service等)をインターネット非公開にしながら、Front Door経由でのアクセスのみを許可できます。
これにより、バックエンドのApp ServiceやAKSをインターネットから完全に遮断しつつ、Front Door経由のみで安全にアクセス可能になります。
Application Gatewayとの使い分け
Azure Application GatewayとAzure Front Doorはどちらもレイヤー7(HTTP/HTTPS)のロードバランサーですが、設計思想が異なります。
サービス比較
| 項目 | Azure Front Door | Azure Application Gateway |
|---|---|---|
| スコープ | グローバル(複数リージョン) | リージョン内(単一リージョン) |
| デプロイ形態 | PaaSサービス(マネージド) | VNet内にデプロイ |
| CDN機能 | ✅ 統合 | ❌ なし |
| SSL/TLS終端 | エッジ(グローバルPOP) | リージョン内VNet |
| バックエンド対象 | インターネット経由またはPrivate Link | VNet内またはパブリックエンドポイント |
| WAF | ✅ 統合(Standard/Premium) | ✅ 統合(WAF_v2 SKU) |
| Cookie Affinity(スティッキーセッション) | 限定的 | ✅ 充実 |
| URL書き換え | ✅ | ✅ |
| カスタムエラーページ | ✅ | ✅ |
| WebSocket | ✅ | ✅ |
| gRPC | ❌ | ✅ |
| mTLS(クライアント証明書認証) | ❌ | ✅ |
| VNet内プライベートトラフィック | Premium(Private Link) | ✅ ネイティブ |
| コスト傾向 | Standard: 低コスト、Premium: 高コスト | SKUとキャパシティに依存 |
使い分けの判断基準
Azure Front Door を選ぶべきケース
- グローバルアプリケーション: 世界中のユーザーに低レイテンシで配信したい
- マルチリージョン可用性: 複数リージョンのバックエンドへ自動フェイルオーバーしたい
- CDN統合: 静的コンテンツをエッジキャッシュして配信したい
- エッジでのWAF: ユーザーに最も近い場所で脅威をブロックしたい
- グローバルSSL終端: 世界中のエッジでHTTPSを終端してバックエンド負荷を軽減したい
Application Gateway を選ぶべきケース
- VNet内ルーティング: すべてのトラフィックをVNet内で完結させたい
- mTLS(相互TLS認証): クライアント証明書による認証が必要
- gRPCバックエンド: gRPCプロトコルを使うマイクロサービス
- 高度なセッション管理: Cookie-based Session Affinityが必要なレガシーアプリ
- Single RegionのWebアプリ: グローバル分散が不要な社内システム等
Front Door + Application Gateway の組み合わせ
大規模エンタープライズでは両方を組み合わせることもあります。
この構成のメリット:
- Front Doorでグローバルな脅威をエッジでブロック
- Application Gatewayでリージョン内のきめ細かいルーティング制御
- バックエンドをVNet内に完全隔離可能
ただし、コストが高くなるため、要件を十分に検討してから採用してください。
ベストプラクティス
1. WAFはまず検知モードで運用する
本番環境にWAFを新規導入する際は、最初は**検知モード(Detection)で開始し、ログを分析してから防御モード(Prevention)**に切り替えます。
手順:
1. WAFポリシーを検知モードで設定
2. 1〜2週間ログを収集(Azure Monitor / Log Analytics)
3. 誤検知(正規リクエストのブロック)を特定
4. 誤検知ルールを除外設定(Exclusion)に追加
5. 防御モードに切り替え
2. マネージドルールセットのバージョン管理
DRS(Microsoft Default Ruleset)は定期的に更新されます。
- 新バージョンがリリースされたらまず検知モードで評価してから適用
- 重要なアプリケーションでは、DRSの自動アップグレードを無効にして手動管理を検討
3. カスタムルールの優先度設計
カスタムルールはマネージドルールセットより先に評価されます。優先度(Priority)の設計が重要です。
推奨優先度設計:
1〜 99: IPホワイトリスト(信頼できるIPを最優先で許可)
100〜199: 地理的ブロック
200〜299: レート制限
300〜: IPブラックリスト・その他ブロックルール
4. Private Linkによるバックエンド保護(Premium)
Premiumティアを利用する場合は、バックエンドのApp ServiceやAKSにPrivate Linkを設定してインターネットからのダイレクトアクセスを遮断します。
// App Serviceのパブリックアクセス制限(Bicep例)
resource appService 'Microsoft.Web/sites@2022-09-01' = {
name: 'app-myapp-prod'
location: resourceGroup().location
properties: {
publicNetworkAccess: 'Disabled' // インターネットからのアクセスを無効化
siteConfig: {
// Front Door専用のサービスタグを使う場合はネットワーク制限で設定
}
}
}
5. 正常性プローブの適切な設定
バックエンドの正常性プローブは軽量なエンドポイントを専用に用意します。
推奨設定:
- プローブパス: /health または /healthz
- プロトコル: HTTPS
- 間隔: 30〜60秒
- プローブメソッド: HEAD(GETより負荷が低い)
6. キャッシュの適切な設定
静的リソースにはキャッシュを積極的に活用しますが、APIエンドポイントはキャッシュを無効化します。
静的コンテンツ(CSS, JS, 画像):
- キャッシュ有効化
- キャッシュ期間: 1日〜1週間
- Cache-Controlヘッダーを明示的に設定
API・動的コンテンツ:
- キャッシュ無効化
- Cache-Control: no-store を設定
7. DDoS対策との組み合わせ
Azure Front DoorのWAFレート制限は大規模DDoSへの対応に限界があります。重要なサービスではAzure DDoS Protectionとの組み合わせを検討してください。
推奨構成:
- Azure DDoS Protection Standard: ネットワーク層(L3/L4)の大規模攻撃対策
- Azure Front Door WAF: アプリケーション層(L7)の攻撃対策
8. ログ・監視の設定
WAFのログはAzure Monitor・Log Analyticsに必ず送信し、アラートを設定します。
// WAFでブロックされたリクエストを集計するKQLクエリ
AzureDiagnostics
| where Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
| summarize count() by ruleName_s, clientIP_s
| order by count_ desc
| take 20
まとめ
| 観点 | Standard | Premium |
|---|---|---|
| コスト | 低(月額 〜$35〜) | 高(月額 〜$330〜) |
| WAF機能 | マネージドルールセット + カスタムルール | Bot Manager・脅威インテリジェンス追加 |
| バックエンド保護 | インターネット経由のみ | Private Linkでプライベート接続 |
| 適したケース | 一般的なWebサイト・API | 金融・EC等の高セキュリティ要件 |
- Azure Front Door はグローバル配信・CDN・エッジWAFが必要なケースで選択
- Application Gateway はVNet内ルーティング・mTLS・gRPCが必要なケースで選択
- WAFは必ず検知モードで始めてチューニングを行い、その後防御モードに移行する
- Premiumの高コストを正当化するには、Bot ManagerまたはPrivate Linkの利用が鍵となる