はじめに
AWS Network Firewall が Transit Gateway とネイティブ統合したので実際に試してみたいと思います。
概要
アップデート前だと、Network Firewall を使った VPC 間通信の検査は以下 AWS ブログに記載のあるデプロイモデルが提唱されていました。規模が小さいシステムならまだしも、大抵の場合は 検査用 VPC を用意し、Network Firewall をデプロイする集約型モデルが採用されているかと思います。
今回のアップデートにより、Network Firewall を直接 Transit Gateway へアタッチできるようになります。
これにより、上記ブログの集約型モデルに関して別途 検査用 VPC を用意する必要がなくなります。
- アタッチと言うより、AWS管理の VPC にデプロイされ、Transit Gateway アタッチメント経由で通信する形です
使用方法(デモ)
検証構成
検証構成図は以下の通りです。
なお、以下リソースは作成済みで進めていきます。
- Transit Gateway
- Transit Gateway RouteTable (ルートなし)
- Network Firewall ポリシー 及び ルールグループ
- VPC 及び VPC 内リソース
検証では、Network Firewall の作成と、Transit Gateway RouteTable ルートの作成をしていきます。
- 環境コードは以下 GitHub にあげてますので、よかったら覗いてみてください
実践
Network Firewall 作成
VPC サービスページの「Firewall」から「Create firewall」をクリックします。

ここがポイントです。
アップデート前は VPC のみ選択可能でしたが、アップデート後は Transit Gateway も選択肢として増えました。以降の設定値はどちらのタイプでも変わりません。
今回は Transit Gateway にアタッチします。事前に作成した Transit Gateway を選択し、Firewall をデプロイする Availavility Zone を選択します。今回は Single-AZ とします。
以降の設定値は従来と変わらないので割愛します。

- Availavility Zone は、後からFirewall ページにて追加・削除が可能です
- アタッチする Transit Gateway の変更は不可です
作成が完了すると Transit Gateway Attachment も作成されます。
アプライアンスモードは有効になっていますね。

ただしこのままでは Transit Gateway RouteTable がアソシエートされていないのと、各 VPC のアタッチメントへアソシエートするルートテーブルに Network Firewall 宛のルートが無いため通信は通りません。
次節で設定していきます。
Transit Gateway RouteTable アソシエーション & ルート追加
事前に作成したルートテーブルがあります。
tgw-rtb-for-nfw を自動作成された Transit Gateway Attachment にアソシエートします。

Firewall 作成時に自動作成されたアタッチメントを選択します。
割愛しますが、各ルートテーブルも それぞれのアタッチメントにアソシエートします。

動作確認
動作確認は CloudShell を VPC 内に起動して実施していきます。
起動の仕方はこちらの記事を参考にしてみてください。
今回の環境では、ステートフルルールグループのドメインリストにて .google.com を許可しており、それ以外はブロックされるようにしています。
実際にグーグルに curl すると 200 が返ってくるので正常に通信はできているのがわかります。

続いて他のドメインで確認して見ます。ヤフーに curl してみるとタイムアウトになりました。

Firewall のアラートログを見てみると、ブロックされていることがわかります。

おわりに
本記事では、Network Firewall の Transit Gateway ネイティブ統合を試してみました。
従来の集約型モデルのように 別途 検査用 VPC を用意しなくても良くなるため、CIDR 設計や VPC 内ルートテーブルの管理から解放される点は非常に魅力的だなと感じました。
ただし、確認はしていませんが、従来の集約型モデルよりも Transit Gateway を通る通信が増えるので Transit Gateway のデータ転送料金が増加する可能性はある点注意が必要かと思いました。
🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。





