Skip to content

FDサービス系WAF 運用設計書

文書情報

項目内容
作成日2026-05-25
対象システムFDサービス系 ALB + WAF(*.fstdr.jp
対象環境production
関連ドキュメントFDサービス系 移行設計書, WAF 運用設計書(LP向け), CloudFront WAF アーキテクチャ設計書
関連Issuemental-online-karte#11672

本ドキュメントの位置づけ

FDサービス系WAF(*.fstdr.jp)固有の運用差分を記載する。 運用体制・定常運用フロー・インシデント対応・変更管理等の共通事項は WAF 運用設計書(LP向け) に従う。


1. 対象範囲

項目LP向けWAF(既存)FDサービス系WAF(本ドキュメント)
対象ドメインfastdoctor.jp, test.fastdoctor.jp*.fstdr.jp(11サービス)
AWSアカウントfd-sys(913831226605fd-prod(967691968827
WAFスコープCLOUDFRONTREGIONAL(ALB に直接アタッチ。API Gateway は HTTP API のため WAF 非サポート、別途検討)
共有リソースwaf-shared-sets(IP/UA Blacklist、CLOUDFRONT スコープ)REGIONAL スコープで別途作成(IP リストの内容は Terraform 変数で共通化)
Datadog Pipelinesource:waf(共通)同一Pipelineを利用waf_host タグでドメイン区別)

2. ログコスト最適化(#11672

Geo制限は導入しない方針のため(海外勤務の医師・渡航中の患者向けサービスがあるため)、当初想定していた国外Blockログによるコスト圧迫リスクは低下した。 ただし Block/Count ログ量が想定を超える場合に備え、以下のコスト最適化手段を記載する。

2.1 Datadog Index Exclusion Filter

Datadog側で国外BlockログをIndexから除外し、インデックスコスト(保存・検索)を削減する。

  • 対象インデックス: main
  • Exclusion Filter 名: waf-geo-block-non-jp
  • 除外クエリ: source:waf @httpRequest.country:(-JP) @action:BLOCK
  • サンプリング率: 100%(全て除外)
  • 設定場所: Datadog Log Index Configuration
ログ種別Datadog IndexDatadog検索S3Athena検索
JP の Block/Count保存可能保存可能
国外(JP以外)の Block除外不可保存可能
国外(JP以外)の Count保存可能保存可能
ALLOW送信しない---

なぜDatadog側で除外するか:

  • WAF Logging Filterでは country フィールドで条件分岐できない(action条件のみ)
  • Firehose Lambda Data Transformation で除去する方法もあるが、Lambda の開発工数・メンテナンスコスト(コード管理、エラーハンドリング、バージョン管理等)がかかる
  • Datadog Index Exclusion Filter は設定のみで完結し、追加の開発・運用負荷がない
  • 除外されたログもLive Tail・Log-based Metricsでは利用可能

2.2 誤検知調査: S3 + Athena

Datadog Indexから除外された国外Blockログの誤検知調査は、Firehose S3バックアップに保管された全ログを Athena で SQL 検索する

WAF → Firehose → Datadog(Index除外で国外Block非表示)
              └→ S3(AllData、全ログ保管)→ Athena(必要時にSQL検索)

S3 + Athena を採用した理由(Datadogカスタムメトリクス案との比較、#11672で検討):

既存の fastdoctor.jp, test.fastdoctor.jp のWAFログ(約5,215件/日)をベースに比較調査した結果、以下の通り。FDサービス系はこれよりログ量が大幅に多くなる見込みのため、コスト面でも S3 + Athena が有利。

観点S3 + AthenaDatadogカスタムメトリクス
誤検知調査全フィールド(URI, ヘッダー, ルールID等)をSQLで自由検索集計値のみ。「なぜブロックされたか」は不明
コスト月 $0.1〜0.5(実質無料)月 $2〜40(group by粒度次第。攻撃時にIP急増でコスト増リスク)
セキュリティ自社AWS内にログ保管。IAM/KMS/CloudTrailで制御Datadog SaaS委託

Datadogカスタムメトリクス(Generate Metrics)はDatadog社から提案されたが、 誤検知調査のユースケース(低頻度・全フィールド参照)にはS3+Athenaの方が適しており、見送り。 国内サービスのため国外トラフィックの傾向分析も不要。

S3 保管設計

項目設定
バックアップモードAllData(Firehose Source record backup)
圧縮gzip(Firehose標準)
パーティションyear/month/day(動的パーティショニング)
ライフサイクルStandard → 30日後 Standard-IA → 90日後 Glacier Instant Retrieval
保持期間1年(監査要件)
暗号化SSE-S3 or SSE-KMS
パブリックアクセス全ブロック

Athena 関連設計

Athenaのデータベース・テーブル定義、Workgroup設定、コストモニタリング、クエリの投げ方については別途設計する。

関連ドキュメント:

2.3 Ingestionコスト削減(必要に応じて追加検討)

上記でもDatadogのインジェストコストが予算を超える場合、Firehose Lambda Data Transformation で国外BlockログをDatadogに送信する前に除去する方法がある。1-2ヶ月運用してコストを確認してから判断。


3. 疎通検証期間のDatadogアカウント分離

アクセス数が多いサービスのみ、疎通検証期間(約1週間)にインフラDatadogアカウントでログ量を計測する。

サービスDatadogアカウント
backend.fastdoctor.jp, p.fstdr.jpインフラで検証後に本番切替
その他(mental-reserve-patient 等)最初から本番
  • インフラアカウントは現状ログが無いため、WAFログの影響を正確に計測できる
  • 検証期間中もインフラDatadogアカウントでダッシュボードでモニタリングする
  • 疎通検証完了後、本番Datadogアカウントに切り替え。ダッシュボードもexport/importする

変更履歴

日付バージョン変更内容担当チーム担当者
2026-05-251.0初版作成(WAF運用設計書からFDサービス固有部分を分離)SRE大賀
2026-06-081.1WAFスコープを CLOUDFRONT → REGIONAL に変更。共有IPセットの管理方針を更新SRE大賀