💡 最初に押さえるべき3つのポイント

① 3つのモデルから選ぶ:AWS Network Firewallには「分散型」「集中型」「複合型」の3つのデプロイモデルがあり、組織の規模・要件・コスト感に合わせて選択する
② 集中型が最もポピュラー:多くの企業ではTransit Gatewayと組み合わせた集中型モデルが一元管理・コスト効率の面で採用されることが多い
③ ルーティングが肝:どのモデルでも「トラフィックをFirewallエンドポイントに確実に通す」ためのルートテーブル設計が最重要ポイント
④ 試験頻出テーマ:ANS-C01/SAP-C02ではデプロイモデルの選択理由・Transit Gatewayとの連携が問われる

🏬 ショッピングモールの警備システムで理解する

🛡️ たとえ話:大型ショッピングモール複合施設の警備

AWS Network Firewallのデプロイモデルは、複数の建物があるショッピングモール複合施設の警備体制に例えると分かりやすくなります。 各建物が「VPC」、お客さんの出入り(トラフィック)をチェックする「警備ゲート」がNetwork Firewallです。

AWSの世界 🌐 ショッピングモールの世界 🏬
VPC 各建物(A棟・B棟・C棟…)
Network Firewall セキュリティ検問ゲート(手荷物検査+金属探知機)
Firewall Endpoint 検問ゲートの設置場所(出入口)
Transit Gateway 建物間をつなぐ連絡通路のハブ(中央広場)
East-West トラフィック 建物間のお客さんの移動
North-South トラフィック 外部(駐車場・道路)から建物への出入り
Firewall Policy / Rule Group 警備マニュアル(チェック項目一覧)

🔍 AWS Network Firewall の概要

AWS Network Firewallは、VPC向けのステートフルかつマネージド型のネットワークファイアウォールサービスです。 Suricata互換のIDS/IPSルールエンジンを内蔵し、レイヤー3〜7のトラフィックを検査できます。 デプロイモデルの選択は、ファイアウォールをどのVPCのどこに配置するかという設計判断です。

3つのデプロイモデル — 全体像 🔵 分散型モデル VPC-A 🔥 FW あり VPC-B 🔥 FW あり VPC-C 🔥 FW あり VPC-D 🔥 FW あり 各VPCに個別FWを配置 🏬 各建物に警備員配置 🟣 集中型モデル 検査VPC(中央) 🔥 FW 集約 Transit Gateway VPC-A VPC-B VPC-C 中央検査VPCに集約 🏬 正面玄関に集中ゲート 🟢 複合型モデル 検査VPC 🔥 E-W用 VPC-A 🔥 N-S用 Transit GW VPC-B VPC-C VPC-D 中央+各VPC併用 🏬 正面ゲート+VIP警備

🔵 分散型デプロイモデル

1
分散型(Distributed)デプロイモデル
各VPCに個別のNetwork Firewallを配置
🏬 たとえ話:ショッピングモールの各建物(A棟・B棟・C棟)にそれぞれ独自のセキュリティ検問ゲートを設置する方式。お客さんは自分が入る建物のゲートだけを通ります。建物ごとに「持込禁止リスト」を個別に管理できますが、警備員を全建物分雇うのでコストは高くなります。
分散型モデルでは、保護したい各VPCにNetwork Firewallエンドポイントを個別にデプロイします。 各VPC内にFirewallサブネットを作成し、Internet GatewayやNAT Gatewayへのルーティングをファイアウォールエンドポイント経由に設定します。 VPC間の通信(East-West)は対象外となり、主にインターネットとの通信(North-South)を検査する用途に適しています。
分散型デプロイモデル — 各VPCにFirewallを配置 🌐 インターネット VPC-A(本番環境) IGW 🔥 Firewall Endpoint A アプリケーション Subnet DB Subnet VPC-B(開発環境) IGW 🔥 Firewall Endpoint B アプリケーション Subnet DB Subnet VPC-C(ステージング) IGW 🔥 Firewall Endpoint C アプリケーション Subnet DB Subnet 🔥 = Firewall Endpoint(各VPC独立) → = North-Southトラフィック(インターネット ↔ VPC) ※ VPC間通信(East-West)は検査対象外 ※ 各VPCで独立したFW Policyを設定可能

✅ メリット(利点)

  • 実装がシンプル:Transit Gateway不要で各VPCに直接配置
  • 障害分離:1つのVPCの障害が他に波及しない
  • VPCごとに異なるルールポリシーを柔軟に適用可能
  • 小規模環境やPoC(概念実証)に最適

⚠️ デメリット(欠点)

  • VPC数が増えるとコストが線形に増大
  • 複数のFirewallインスタンスの管理・メンテナンス負荷
  • ルール変更時に全VPCへ個別適用が必要
  • East-West(VPC間)トラフィックの検査ができない

🎯 適用シーン

VPC数が少ない(2〜3個以下)環境、VPCごとに完全に異なるセキュリティポリシーが必要な場合、Transit Gatewayを使わないシンプルなアーキテクチャ。

🟣 集中型デプロイモデル

2
集中型(Centralized)デプロイモデル
中央検査VPCにFirewallを集約(Transit Gateway必須)
🏬 たとえ話:ショッピングモール複合施設のメインエントランスに大型セキュリティゲートを1つだけ設置する方式。すべてのお客さん(East-West:建物間移動、North-South:外部からの来訪)は必ずこの中央ゲートを通過します。警備員の人数もゲートの数も少なくて済みますが、すべてのお客さんが1箇所に集まるため、ゲートが故障すると全建物に影響します。建物間をつなぐ中央広場(Transit Gateway)が必要です。
集中型モデルでは、専用の「検査VPC(Inspection VPC)」を作成し、そこにNetwork Firewallを集約配置します。 すべてのスポークVPCのトラフィックは、AWS Transit Gatewayを経由して検査VPCに転送され、ファイアウォールで検査された後に宛先へルーティングされます。 East-West(VPC間)とNorth-South(インターネット)の両方のトラフィックを一元的に検査できます。
集中型デプロイモデル — 検査VPCにFirewallを集約 🌐 インターネット 🛡️ 検査VPC(Inspection VPC) IGW 🔥 Network Firewall(集約) 🔀 Transit Gateway 検査済み VPC-A(本番) EC2 / ECS RDS / Aurora VPC-B(開発) Lambda / API GW DynamoDB VPC-C(共有SVC) Active Directory DNS / Logging 🏢 オンプレミス 社内サーバー群 VPN / Direct Connect ━ 検査済みトラフィック ┅ VPN/DX接続 ※ すべてのトラフィックが検査VPCを経由

✅ メリット(利点)

  • 一元管理:ルールポリシーを1箇所で管理
  • コスト効率:Firewallインスタンスが1つで済む
  • East-West + North-South 両方のトラフィックを検査可能
  • ログの集約が容易(CloudWatch / S3)

⚠️ デメリット(欠点)

  • Transit Gatewayが前提条件(追加コスト)
  • ルートテーブル設計が複雑(TGW + Inspection VPC)
  • 検査VPCの障害が全VPCに波及(単一障害点)
  • TGWの帯域・ルート上限への注意が必要

🎯 適用シーン

VPC数が多い(4個以上)エンタープライズ環境、VPC間通信の検査が必須な場合、セキュリティポリシーを統一管理したい組織、AWS Organizationsでマルチアカウント運用している場合。

🟢 複合型デプロイモデル

3
複合型(Combined)デプロイモデル
集中型+分散型を組み合わせた柔軟な構成
🏬 たとえ話:ショッピングモールのメインエントランスには中央セキュリティゲートを設置し(建物間移動のチェック用)、加えて高級ブランド棟には独自の専用ガードも配置する方式。一般のお客さんは中央ゲートだけを通りますが、外部から直接VIP棟に来るお客さんはVIP棟のゲートも通ります。 両方のいいとこ取りですが、管理する警備体制が複雑になります。
複合型モデルでは、VPC間通信(East-West)やオンプレミス通信は中央の検査VPCのFirewallで検査し、 インターネットからのイングレストラフィック(North-South)は各VPC内のFirewallで検査するという、 トラフィックパターンに応じた最適な検査を行います。
複合型デプロイモデル — 集中検査 + 各VPCイングレス検査 🌐 インターネット N-S: 各VPCで検査 E-W: 中央検査VPCで検査 VPC-A(Webフロント) IGW 🔥 FW-A(N-S検査) ALB + EC2 / ECS VPC-B(APIサーバー) IGW 🔥 FW-B(N-S検査) NLB + API Gateway 🔀 Transit Gateway 🛡️ 検査VPC(E-W検査用) 🔥 FW-Central(E-W検査) VPC間・オンプレミス間の トラフィックを検査 E-W検査 VPC-C(内部サービス) マイクロサービス群 ※ N-S不要(内部のみ) 🏢 オンプレミス 社内DC / VPN 凡例: N-S トラフィック(各VPCで検査) E-W トラフィック(中央検査VPCで検査) VPC → TGW 接続

✅ メリット(利点)

  • 柔軟性が最も高い:トラフィックパターンごとに最適化
  • インターネットイングレスを各VPCで直接検査(低遅延)
  • VPC間通信は中央で統一ポリシーを適用
  • WAF/Shield連携が各VPCで可能

⚠️ デメリット(欠点)

  • 設定と管理が最も複雑
  • ルートテーブルの管理ポイントが多い
  • コストが集中型より高い(複数FW + TGW)
  • チームのAWSスキルが十分でないと運用が困難

🎯 適用シーン

Webアプリケーションが外部公開されており低遅延のイングレス検査が必要な場合、かつVPC間通信の統一検査も必要な大規模エンタープライズ環境。ALB/NLBの前段にFWを置きつつ、内部通信は集中管理したいハイブリッドなケース。

📊 3つのモデル比較表

比較項目 🔵 分散型 🟣 集中型 🟢 複合型
🏬 たとえ話 各建物に警備員配置 正面玄関に集中ゲート 正面ゲート+VIP棟ガード
Transit Gateway 不要 必須 必須
N-S検査 各VPCで検査 検査VPCで一括検査 各VPCで検査
E-W検査 ❌ 検査不可 ✅ 検査可能 ✅ 検査可能
コスト VPC数に比例(高) FW1つ+TGW(中) FW複数+TGW(高)
管理の複雑さ 低(各VPC独立) 中(TGWルーティング) 高(両方の管理)
障害影響範囲 そのVPCのみ 全VPC(単一障害点) E-W: 全VPC / N-S: そのVPC
推奨VPC数 1〜3個 4個以上 4個以上+外部公開VPCあり
ポリシー管理 VPCごとに個別 中央で一元管理 中央+個別の併用

🧭 デプロイモデル選択フローチャート

デプロイモデル選択フローチャート Network Firewall導入検討 VPCは4個以上ありますか? いいえ 🔵 分散型モデル はい VPC間(E-W)の検査は必要ですか? いいえ (N-Sのみでよい) はい 外部公開VPCで低遅延イングレス検査が必要? いいえ 🟣 集中型モデル はい 🟢 複合型モデル

💻 設定例(CLI / CloudFormation / Terraform)

Network Firewallの基本的な作成コマンドと、集中型モデルでのTGWルーティング設定例を示します。

# 1. Firewallポリシーの作成
aws network-firewall create-firewall-policy \
  --firewall-policy-name "inspection-policy" \
  --firewall-policy '{
    "StatelessDefaultActions": ["aws:forward_to_sfe"],
    "StatelessFragmentDefaultActions": ["aws:forward_to_sfe"],
    "StatefulRuleGroupReferences": [
      {
        "ResourceArn": "arn:aws:network-firewall:ap-northeast-1:123456789012:stateful-rulegroup/block-malware"
      }
    ]
  }'

# 2. Network Firewallの作成(検査VPC内)
aws network-firewall create-firewall \
  --firewall-name "central-inspection-fw" \
  --firewall-policy-arn "arn:aws:...:firewall-policy/inspection-policy" \
  --vpc-id "vpc-inspection123" \
  --subnet-mappings '[{"SubnetId": "subnet-fw-az1"}, {"SubnetId": "subnet-fw-az2"}]'

# 3. TGWルートテーブルでトラフィックを検査VPCへ転送
aws ec2 create-transit-gateway-route \
  --destination-cidr-block "0.0.0.0/0" \
  --transit-gateway-route-table-id "tgw-rtb-spoke" \
  --transit-gateway-attachment-id "tgw-attach-inspection-vpc"
AWSTemplateFormatVersion: '2010-09-09'
Description: Network Firewall - Centralized Inspection VPC

Resources:
  # Firewall Policy
  InspectionPolicy:
    Type: AWS::NetworkFirewall::FirewallPolicy
    Properties:
      FirewallPolicyName: inspection-policy
      FirewallPolicy:
        StatelessDefaultActions:
          - aws:forward_to_sfe
        StatelessFragmentDefaultActions:
          - aws:forward_to_sfe
        StatefulRuleGroupReferences:
          - ResourceArn: !Ref BlockMalwareRuleGroup

  # Network Firewall
  CentralFirewall:
    Type: AWS::NetworkFirewall::Firewall
    Properties:
      FirewallName: central-inspection-fw
      FirewallPolicyArn: !Ref InspectionPolicy
      VpcId: !Ref InspectionVPC
      SubnetMappings:
        - SubnetId: !Ref FirewallSubnetAZ1
        - SubnetId: !Ref FirewallSubnetAZ2

  # Stateful Rule Group
  BlockMalwareRuleGroup:
    Type: AWS::NetworkFirewall::RuleGroup
    Properties:
      RuleGroupName: block-malware
      Type: STATEFUL
      Capacity: 100
      RuleGroup:
        RulesSource:
          RulesSourceList:
            TargetTypes: [HTTP_HOST, TLS_SNI]
            Targets:
              - ".malware-example.com"
            GeneratedRulesType: DENYLIST
# Terraform - Network Firewall (集中型モデル)

resource "aws_networkfirewall_firewall_policy" "inspection" {
  name = "inspection-policy"
  firewall_policy {
    stateless_default_actions          = ["aws:forward_to_sfe"]
    stateless_fragment_default_actions = ["aws:forward_to_sfe"]

    stateful_rule_group_reference {
      resource_arn = aws_networkfirewall_rule_group.block_malware.arn
    }
  }
}

resource "aws_networkfirewall_firewall" "central" {
  name                = "central-inspection-fw"
  firewall_policy_arn = aws_networkfirewall_firewall_policy.inspection.arn
  vpc_id              = aws_vpc.inspection.id

  dynamic "subnet_mapping" {
    for_each = aws_subnet.firewall[*].id
    content {
      subnet_id = subnet_mapping.value
    }
  }
}

resource "aws_networkfirewall_rule_group" "block_malware" {
  name     = "block-malware"
  type     = "STATEFUL"
  capacity = 100

  rule_group {
    rules_source {
      rules_source_list {
        target_types     = ["HTTP_HOST", "TLS_SNI"]
        targets          = [".malware-example.com"]
        generated_rules_type = "DENYLIST"
      }
    }
  }
}

# TGWルートでトラフィックを検査VPCに誘導
resource "aws_ec2_transit_gateway_route" "to_inspection" {
  destination_cidr_block         = "0.0.0.0/0"
  transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.spoke.id
  transit_gateway_attachment_id  = aws_ec2_transit_gateway_vpc_attachment.inspection.id
}

✅ ベストプラクティス vs ❌ アンチパターン

⭕ ベストプラクティス

  • Firewall Endpointは各AZに配置し、高可用性を確保する
  • Firewall Managerで組織全体のポリシーを一元管理する
  • ログをCloudWatch Logs + S3に二重出力し、アラート設定をする
  • ルールグループはStateless → Stateful の順で処理負荷を最適化
  • TGWのアプライアンスモードを有効化して非対称ルーティングを防止
  • Terraform/CloudFormationでIaC管理し、環境間の整合性を担保
  • VPC間通信が不要なら分散型を選び、不要なTGWコストを避ける

❌ アンチパターン

  • Firewall Endpointを1つのAZにだけ配置する(AZ障害で全断)
  • ルートテーブルのミスでトラフィックがFWをバイパスしてしまう
  • 全ルールをStatefulにして処理遅延・コスト増を招く
  • TGWアプライアンスモードを無効のまま集中型を構成する
  • ログ出力なしでFWを運用し、インシデント時に調査不能になる
  • VPCが2個しかないのにTGW+集中型モデルを採用してオーバーエンジニアリング
  • Firewall PolicyをGUIで手動変更し、環境差分が生じる

🔧 トラブルシューティング

🚨 トラフィックがFirewallを通過しない

原因:ルートテーブルの設定ミス。IGWルートテーブルやTGWルートテーブルがFirewallエンドポイントを指していない。

✅ 対策:VPC Reachability Analyzerで経路を確認し、IGWルートテーブルのエッジアソシエーションにFirewallサブネットへの経路を追加する。

🚨 非対称ルーティングで接続が切れる

原因:集中型でTGWアプライアンスモードが無効。行きと帰りで異なるAZのFirewallを通り、ステートフル検査が失敗する。

✅ 対策:TGWのVPCアタッチメントで「Appliance Mode Support = Enable」を設定する。

🚨 Firewallのログが出力されない

原因:FirewallのLogging Configurationが未設定、またはIAMロールにCloudWatch Logs書き込み権限がない。

✅ 対策:aws network-firewall update-logging-configuration でALERT/FLOWログの出力先を設定し、IAMポリシーを確認する。

🚨 集中型モデルで特定VPCだけ通信できない

原因:TGWルートテーブルのアソシエーションまたはプロパゲーション設定の不足。該当VPCのアタッチメントが正しいルートテーブルに関連付けられていない。

✅ 対策:TGWルートテーブルのアソシエーション一覧を確認し、該当VPCのアタッチメントが正しいルートテーブル(Spoke RTB)に紐付いているか確認する。

📝 試験対策ポイント(ANS-C01 / SAP-C02)

🎯 頻出ポイントと出題パターン

📌 出題パターン①:デプロイモデルの選択
「複数のVPCにまたがるトラフィックを一元的に検査したい場合、どのアーキテクチャが最適か?」→ 集中型モデル(Inspection VPC + Transit Gateway)が正解。分散型ではE-W検査ができないことがポイント。
📌 出題パターン②:TGWアプライアンスモード
「集中型Firewallで非対称ルーティングが発生する原因と対策」→ TGWのAppliance Modeを有効にすることで、同一AZのFirewallを往復で通るようになる。
📌 出題パターン③:Network Firewall vs Security Group / NACLの使い分け
Network Firewallはドメイン名フィルタリング(FQDN)やIDS/IPSが必要な場合に使用。単純なIP/ポート制御ならSGやNACLで十分。Suricataルール対応が差別化ポイント。
📌 出題パターン④:Firewall Managerとの連携
AWS Firewall Managerを使うと、AWS Organizations配下の全アカウントにNetwork Firewallポリシーを自動適用できる。マルチアカウント環境での一元管理が問われる。
📌 出題パターン⑤:ルーティングの理解
Firewall EndpointはGWLBe(Gateway Load Balancer Endpoint)型のVPCエンドポイントとして動作する。IGWのルートテーブル(エッジアソシエーション)でFirewallサブネットにトラフィックを向ける設定が問われる。

❓ よくある質問(FAQ)

AWS WAFはレイヤー7(HTTP/HTTPS)のWebアプリケーション保護に特化し、CloudFrontやALBの前段で動作します。Network Firewallはレイヤー3〜7をカバーし、VPC内のすべてのトラフィック(TCP/UDP/ICMPなど)をステートフルに検査できます。ドメインフィルタリングやIDS/IPSが必要な場合はNetwork Firewall、SQLインジェクションやXSS対策ならWAFが適切です。
検査VPCのFirewallが停止すると、すべてのスポークVPCの通信が遮断されます(単一障害点)。対策として、Firewall Endpointを複数AZに配置し、CloudWatchでヘルスモニタリングを設定してください。また、Firewallの「Delete Protection」を有効にして誤削除を防止することも重要です。
通常、TGWは送信元と宛先のAZに基づいてルーティングしますが、これにより行きと帰りで異なるAZのFirewallを通ることがあります(非対称ルーティング)。アプライアンスモードを有効にすると、トラフィックが常に同じAZのアタッチメントを経由するようになり、ステートフル検査の整合性が保たれます。
主に2つの課金要素があります:(1) Firewall Endpoint 1つあたり約$0.395/時間(約$284/月)、(2) 処理データ量 1GBあたり約$0.065。マルチAZ構成で2エンドポイントの場合、エンドポイントだけで月額約$570になります。集中型モデルを使えばエンドポイント数を最小化できます。
(1) Transit Gatewayを作成し全VPCをアタッチ、(2) 検査VPCを新規作成しFirewallをデプロイ、(3) TGWルートテーブルを設定(スポークRTBとInspection RTB)、(4) 各VPCのルートテーブルをTGW経由に変更、(5) 旧Firewall EndpointをVPCごとに段階的に削除、という手順で移行します。ダウンタイムを避けるため、段階的に実施することが重要です。

📖 用語集

Firewall Endpoint
Network FirewallがVPC内でトラフィックを受け取るためのインターフェース。各AZに1つずつ配置する
Firewall Policy
ルールグループの集合体。Stateless/Statefulのルール適用順序とデフォルトアクションを定義する
Inspection VPC
集中型モデルにおいて、Network Firewallを集約配置する専用VPC
Transit Gateway (TGW)
複数のVPCやオンプレミスネットワークを相互接続するハブ型サービス
East-West トラフィック
VPC間やサブネット間の水平方向の通信
North-South トラフィック
インターネットとVPC間の垂直方向の通信
Suricata
Network Firewallが内部で使用するオープンソースのIDS/IPSエンジン
Appliance Mode
TGWのVPCアタッチメント設定。有効化すると同一AZ内でトラフィックを折り返し、非対称ルーティングを防ぐ

📋 チートシート - AWS Network Firewall デプロイモデル

🔵 分散型

各VPCにFWを個別配置。TGW不要。N-S検査のみ。VPC 1〜3個向け。障害はVPC単位で分離。VPCごとに個別ポリシー。🏬 各建物に警備員。

🟣 集中型

検査VPCにFW集約。TGW必須。N-S + E-W検査。VPC 4個以上向け。一元管理・低コスト。単一障害点に注意。アプライアンスモード必須。🏬 正面玄関ゲート。

🟢 複合型

E-Wは中央FW、N-Sは各VPCのFW。TGW必須。最も柔軟だが最も複雑。外部公開VPCあり+E-W検査の両方が必要な場合。🏬 正面ゲート+VIP警備。

Created by SSuzuki1063

AWS SAP Learning Resources