AWS Network Firewallを理解する: VPCトラフィックを制御するマネージド型ネットワークファイアウォール

AWSでファイアウォールと聞くと、多くの人がまずSecurity GroupやAWS WAFを思い浮かべます。しかし、Security Groupはリソース単位のアクセス制御に近く、AWS WAFはWebリクエストを検査するWebアプリケーションファイアウォールです。

この記事では、WebアプリケーションファイアウォールであるAWS WAFは除外し、VPCネットワークトラフィックを検査・制御するAWS Network Firewallを中心に解説します。


AWS Network Firewallとは?

AWS Network Firewallは、Amazon VPC内で動作するマネージド型ネットワークファイアウォールサービスです。

簡単に言えば、VPCの内外を行き来するトラフィックを中央で検査し、許可またはブロックできるサービスです。既存のオンプレミス環境で使用されていたファイアウォール、IDS、IPSの概念をAWS VPC環境に合わせてマネージドサービスとして提供していると考えることができます。

AWS Network Firewallは、次のような状況で使用します。

使用目的 説明
インターネットアウトバウンド制御 プライベートサブネットのサーバーが外部インターネットへ出るトラフィックを検査
インバウンドトラフィック検査 インターネットからVPC内部へ入るトラフィックをフィルタリング
VPC間トラフィック検査 複数のVPC間の通信を中央ファイアウォールで検査
悪性ドメイン/IPブロック 既知の悪性IP、疑わしいドメイン、ボットネット通信をブロック
侵入検知/防御 Suricata互換ルールを活用したIDS/IPS的な検査
中央セキュリティアーキテクチャ Transit Gatewayと連携して中央検査VPCを構成

Security Groupと何が違うのか?

AWSを初めて学ぶ際、Security Groupだけでもファイアウォールのように見えることがあります。しかし、Security GroupとAWS Network Firewallは目的が異なります。

区分 Security Group AWS Network Firewall
適用単位 EC2、ENI、RDS、ALBなどのリソース単位 VPCトラフィック経路
動作方式 ステートフルアクセス制御 ステートレス + ステートフルトラフィック検査
主要目的 どのリソースに誰がアクセスできるかを制御 ネットワークフロー自体を検査しブロック
ルールレベル IP、ポート、プロトコル中心 IP、ポート、プロトコル、ドメイン、Suricataルールなど
ロギング 限定的 フローログ、アラートログ、TLSログをサポート
代表的な使用例 EC2はALBからのみアクセス許可 すべてのインターネットアウトバウンドトラフィックを検査

Security Groupは、「このサーバーの443ポートはALBからのみアクセス可能」のように、リソースアクセス制御に強いです。

一方、AWS Network Firewallは、「このVPCから外部へ出るすべてのトラフィックを検査し、悪性ドメインや疑わしいパターンはブロックする」という目的に近いです。

つまり、Security Groupを置き換えるサービスではなく、Security Groupの上にさらに追加するネットワークセキュリティ層です。


AWS Network Firewallの主要コンポーネント

AWS Network Firewallを理解するには、4つの主要コンポーネントを知る必要があります。

AWS Network Firewall
 ├─ Firewall
 ├─ Firewall Policy
 ├─ Rule Group
 │   ├─ Stateless Rule Group
 │   └─ Stateful Rule Group
 └─ Firewall Endpoint

1. ファイアウォール

ファイアウォールは、実際にVPCにデプロイされるファイアウォールリソースです。

ファイアウォールを作成すると、選択したVPCとアベイラビリティゾーンにファイアウォールエンドポイントが作成されます。このエンドポイントは、トラフィックが通過する必要がある検査ポイントとして機能します。

重要な点は、AWS Network Firewallを作成したからといって、トラフィックが自動的に検査されるわけではないということです。

トラフィックがファイアウォールエンドポイントを通過するように、ルートテーブルを修正する必要があります。


2. ファイアウォールポリシー

ファイアウォールポリシーは、ファイアウォールにどのようなルールを適用するかを定義するポリシーです。

ファイアウォールポリシー内には、ステートレスルールグループとステートフルルールグループを関連付けることができます。

簡単に言えば、ファイアウォールが実際の機器であるならば、ファイアウォールポリシーはその機器に適用するセキュリティポリシーの集合体です。

Firewall
  ↓
Firewall Policy
  ↓
Rule Group

3. ルールグループ

ルールグループは、実際の検査ルールの集合体です。

AWS Network Firewallのルールグループは、大きく2種類に分けられます。

区分 説明
ステートレスルールグループ 各パケットを独立して検査
ステートフルルールグループ 接続フローを追跡しながらトラフィックを検査

ステートレスルール

ステートレスルールは、各パケットを独立して検査します。

例えば、次のようなルールを作成できます。

- 특정 출발지 IP 차단
- 특정 목적지 IP 차단
- 특정 프로토콜 차단
- 특정 포트 차단

ステートレスルールは高速に動作しますが、接続状態を深く理解しません。そのため、単純なIP、ポート、プロトコルベースのフィルタリングに適しています。


ステートフルルール

ステートフルルールは、トラフィックフローを追跡しながら検査します。

例えば、クライアントがサーバーへの接続を開始し、その応答がどのフローに属するかを理解します。そのため、単純なパケットフィルタリングよりも洗練されたセキュリティポリシーを作成できます。

ステートフルルールでは、Suricata互換ルールを使用できます。SuricataはオープンソースのIDS/IPSエンジンで、ネットワーク脅威の検出とブロックによく使用されます。

例えば、次のようなポリシーを構成できます。

- 특정 도메인으로 나가는 트래픽 차단
- 악성 IP와의 통신 차단
- 알려진 공격 시그니처 탐지
- 의심스러운 네트워크 패턴 차단

4. ファイアウォールエンドポイント

ファイアウォールエンドポイントは、実際のトラフィックが通過する検査ポイントです。

AWS Network FirewallをVPCにデプロイすると、アベイラビリティゾーンごとにファイアウォールエンドポイントが作成されます。その後、ルートテーブルでトラフィックのネクストホップをこのエンドポイントに指定する必要があります。

例えば、プライベートサブネットのEC2がインターネットへ出る構造を考えてみましょう。

一般的な構造は次のとおりです。

Private Subnet EC2
  ↓
NAT Gateway
  ↓
Internet Gateway
  ↓
Internet

AWS Network Firewallを導入すると、次のように変わります。

Private Subnet EC2
  ↓
AWS Network Firewall Endpoint
  ↓
NAT Gateway
  ↓
Internet Gateway
  ↓
Internet

つまり、ファイアウォールはトラフィック経路に挿入される形で動作します。


代表的なアーキテクチャ 1: アウトバウンドトラフィック検査

最もよく使われる構造は、プライベートサブネットのサーバーがインターネットへ出る際にAWS Network Firewallを通過させる方式です。

Private Subnet
  ↓
Network Firewall Endpoint
  ↓
NAT Gateway
  ↓
Internet Gateway
  ↓
Internet

この構造では、EC2、ECS、EKSノード、Lambda ENIなどが外部インターネットへ出る際にファイアウォールを経由します。

活用例は次のとおりです。

説明
悪性ドメインブロック サーバーがC2サーバーや悪性ドメインと通信できないようにブロック
不正ポートブロック 80、443以外の外部通信を制限
外部APIアクセス制御 許可されたAPIドメインのみアクセス許可
データ流出防止 疑わしい外部宛先へのトラフィックを検出

特に運用環境では、「サーバーが外部インターネットへどこへでも出られる構造」は危険です。AWS Network Firewallは、このようなアウトバウンドトラフィックを中央で制御できるようにします。


代表的なアーキテクチャ 2: インバウンドトラフィック検査

インターネットからVPC内部へ入るトラフィックを検査することもできます。

Internet
  ↓
Internet Gateway
  ↓
Network Firewall Endpoint
  ↓
Public 또는 Private Subnet
  ↓
Application

ただし、この構造を使用する際にはルーティング設計が重要です。インバウンド方向のみファイアウォールを経由し、応答トラフィックが別の経路で出ると、非対称ルーティングの問題が発生する可能性があります。

ファイアウォールはトラフィックフローを追跡するため、入ってくる経路と出ていく経路が一貫して設計されている必要があります。


代表的なアーキテクチャ 3: 中央検査VPC

複数のVPCを運用する組織では、各VPCごとにファイアウォールを個別に設置するよりも、中央検査VPCを構成するケースが多くあります。

Spoke VPC A
Spoke VPC B
Spoke VPC C
   ↓
Transit Gateway
   ↓
Inspection VPC
   ↓
AWS Network Firewall
   ↓
NAT Gateway / Internet Gateway

この構造の利点は、セキュリティポリシーを中央で管理できることです。

複数のアプリケーションVPCがある場合でも、インターネットへ出るトラフィックを中央検査VPCに集約し、AWS Network Firewallで一括検査することができます。

ただし、この構造はTransit Gateway、ルートテーブル、NAT Gateway、ファイアウォールエンドポイントルーティングを合わせて設計する必要があるため、単一VPC構造よりも複雑です。


AWS Network Firewallで可能なセキュリティポリシー

AWS Network Firewallでは、さまざまな方法でトラフィックを制御できます。

ポリシータイプ
IPベースの制御 特定のIP帯域をブロックまたは許可
ポートベースの制御 22、3389などの危険なポートをブロック
プロトコルベースの制御 TCP、UDP、ICMPなどを制御
ドメインベースの制御 特定のドメインへ出るトラフィックをブロック
シグネチャベースの検出 既知の攻撃パターンを検出
マネージドルールの使用 AWSが提供するマネージドルールグループを使用
Suricataルールの使用 独自のIDS/IPSルールを適用

例えば、運用サーバーが外部へ出る際に次のようなポリシーを作成できます。

허용:
- 회사에서 사용하는 패키지 저장소
- AWS API 엔드포인트
- 운영에 필요한 외부 SaaS API

차단:
- 알려진 악성 IP
- 의심 도메인
- 불필요한 외부 포트
- 비인가 국가 또는 네트워크 대역

ロギングとモニタリング

ファイアウォールにとって、ブロックと同様にログは重要です。

AWS Network Firewallは、次のようなログを残すことができます。

ログタイプ 説明
フローログ ファイアウォールを通過したトラフィックフロー情報
アラートログ ステートフルルールによって検出またはブロックされたイベント
TLSログ TLS検査に関連するイベント

ログは通常、次の宛先に送信できます。

- Amazon CloudWatch Logs
- Amazon S3
- Amazon Data Firehose

運用環境では、少なくともアラートログを有効にすることをお勧めします。セキュリティイベントが発生した際に、どの送信元からどの宛先へ通信しようとしたかを確認できるためです。

大規模環境では、S3にログを保存してAthenaで分析したり、Firehoseを通じてSIEMに転送したりする構成がよく使用されます。


設計時の注意点

AWS Network Firewallは強力ですが、設計を誤るとコストと運用複雑度が増大する可能性があります。

1. ルーティングが鍵

AWS Network Firewallは、作成するだけでは動作しません。

必ずルートテーブルでトラフィックがファイアウォールエンドポイントを通過するように構成する必要があります。

잘못된 생각:
방화벽을 만들면 자동으로 VPC 트래픽이 검사된다.

정확한 이해:
방화벽 엔드포인트를 트래픽 경로에 넣어야 검사된다.

2. 対称ルーティングを考慮する

ステートフル検査を使用する場合、リクエストと応答が同じファイアウォール経路を通過するように設計する必要があります。

非対称ルーティングが発生すると、ファイアウォールがトラフィックフローを正しく追跡できない可能性があります。


3. アベイラビリティゾーンごとに設計する

AWS Network Firewallは、アベイラビリティゾーンごとのエンドポイントを使用します。

運用環境では、単一AZではなく複数のAZにファイアウォールエンドポイントを配置し、各AZのトラフィックは同じAZのファイアウォールエンドポイントを通過するように設計することをお勧めします。

これにより、可用性を高め、不要なクロスAZトラフィックコストも削減できます。


4. コストを必ず考慮する

AWS Network Firewallは、ファイアウォールエンドポイントの時間料金とデータ処理量料金が発生します。

また、NAT Gateway、Transit Gateway、ログ保存費用も合わせて考慮する必要があります。

特に、すべてのアウトバウンドトラフィックをファイアウォールに送信する構造では、データ処理量が多くなるほどコストが増大する可能性があります。

したがって、次のような基準で設計することをお勧めします。

- 모든 트래픽을 검사할 것인가?
- 인터넷 방향 트래픽만 검사할 것인가?
- VPC 간 트래픽도 검사할 것인가?
- 로그를 전부 저장할 것인가, Alert Log만 저장할 것인가?
- 중앙 검사 VPC를 둘 것인가, 각 VPC에 분산 배치할 것인가?

AWS Network Firewallはいつ使うべきか?

次の状況であれば、AWS Network Firewallの導入を検討する価値があります。

状況 導入の必要性
運用サーバーのインターネットアウトバウンドを制御する必要がある
複数のVPCの外部通信を中央で検査する必要がある
セキュリティ監査でネットワークトラフィック検査の要求がある
悪性IP/ドメイン通信をブロックする必要がある
単にEC2ポートを開閉するだけでよい
Web攻撃のみを防御したい AWS WAFの領域なので別途検討

つまり、AWS Network Firewallは「Webリクエスト防御」よりも「VPCネットワークトラフィック検査」に適しています。

WebアプリケーションのSQLインジェクション、XSS、URIベースのブロックはAWS WAFが担当し、VPC内部リソースのネットワーク通信制御はAWS Network Firewallが担当すると理解すればよいでしょう。


実践的な推奨構成

一般的な運用環境では、次のような構成を推奨します。

https://aws.amazon.com/ko/blogs/security/use-aws-network-firewall-to-filter-outbound-https-traffic-from-applications-hosted-on-amazon-eks/

Public 영역
- ALB, NAT Gateway, Internet Gateway

Private 영역
- EC2, ECS, EKS, RDS 등 실제 워크로드

보안 영역
- AWS Network Firewall Endpoint
- Firewall Policy
- Stateful Rule Group
- Alert Log 저장

アウトバウンド中心の構成は次のとおりです。

Private Subnet Workload
  ↓
Route Table
  ↓
AWS Network Firewall Endpoint
  ↓
NAT Gateway
  ↓
Internet Gateway
  ↓
Internet

このように構成することで、プライベートサブネットのサーバーが外部へ出るすべてのトラフィックをファイアウォールで検査できます。


運用チェックリスト

AWS Network Firewallを運用する際には、次の項目を点検することをお勧めします。

[ ] 보호할 트래픽 범위가 명확한가?
[ ] Route Table이 방화벽 엔드포인트를 경유하도록 설정되어 있는가?
[ ] 요청과 응답 경로가 대칭으로 구성되어 있는가?
[ ] AZ별 방화벽 엔드포인트가 구성되어 있는가?
[ ] Stateful Rule과 Stateless Rule의 역할이 구분되어 있는가?
[ ] Alert Log가 활성화되어 있는가?
[ ] 로그 저장 위치와 보관 기간이 정해져 있는가?
[ ] 비용 산정에 엔드포인트, 데이터 처리량, NAT Gateway, 로그 비용이 포함되어 있는가?
[ ] 보안 정책 변경 절차가 정해져 있는가?
[ ] 테스트 환경에서 차단 정책을 먼저 검증했는가?

まとめ

AWS Network Firewallは、VPC環境でネットワークトラフィックを中央で検査・制御するためのマネージド型ファイアウォールサービスです。

Security Groupがリソース単位の基本的なアクセス制御であるならば、AWS Network FirewallはVPCトラフィックフロー自体を検査するセキュリティ層です。

特に運用環境で外部インターネットへ出るトラフィックを制限したり、複数のVPCのトラフィックを中央で検査する必要がある場合、AWS Network Firewallは非常に有用な選択肢となります。

ただし、ファイアウォールを作成することよりも重要なのはルーティング設計です。トラフィックがファイアウォールエンドポイントを通過するようにルートテーブルを正確に構成する必要があり、ステートフル検査を使用する場合は対称ルーティングも必ず考慮する必要があります。

まとめると、AWS Network Firewallは次のように理解できます。

Security Group       = 리소스 단위 접근 제어
Network ACL          = 서브넷 단위 보조 통제
AWS Network Firewall = VPC 트래픽 검사 및 차단

WebアプリケーションファイアウォールがWebリクエストを検査するならば、AWS Network FirewallはVPCネットワークフローを検査します。この違いを理解することで、AWSセキュリティアーキテクチャをより明確に設計できます。



Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です