単一VPCにおけるAWS Network Firewallの構成例と注意点

記事タイトルとURLをコピーする

EC部技術1課の松田です。こんにちは。

今回は単一VPCでAWS Network Firewallを使用する際の構成例をご紹介します。

1. AWS Network Firewallについて

説明は以下の記事に譲りますが、AWS Network Firewall(以下、NFW)は、名前の通りAWSマネージドなネットワークファイアウォールサービスです。

blog.serverworks.co.jp

2. 代表的な利用構成

単一VPCでNFWを使用する場合、以下がベーシックな構成となります。

  • パブリックサブネットとInternet Gateway(以下、IGW)の間に配置
  • プライベートサブネットとNATの間に配置

2.1. パブリックサブネットとIGWの間に配置

この構成では、パブリックサブネット(10.0.2.0/2410.0.3.0/24のサブネット※)とIGW間の通信がNFWを経由するようになります。
(※) 厳密にはパブリックサブネットの定義に当てはまらない気もするのですが、便宜上パブリックサブネットと呼称しています。

またプライベートサブネット(10.0.10.0/2410.0.11.0/24のサブネット)からの通信も、NFWを経由するようになります。ただしこの時、NFWからはNAT GatewayのパブリックIPアドレスが送信元アドレスとしてみなされます。ですので、送信元のプライベートIPアドレスを参照するNFWのルールを設定したい場合にはこの構成は適しません(プライベートサブネットごとにNAT Gatewayを作ることでどうにかなりはしますが、お金もかかるしルールも煩雑になるので現実的ではないと思います)。

2.2. プライベートサブネットとNATの間に配置

この構成では、プライベートサブネット(10.0.10.0/2410.0.11.0/24のサブネット)とNAT Gateway間の通信がNFWを経由するようになります。
この場合、送信元ホストのプライベートIPアドレスがそのままNFWで参照できるため、2.1. よりも柔軟なルール設定が可能になります。

2.3. ざっくりまとめ

ざっくりまとめると、各構成にはそれぞれ以下のような長所があるといえます。

  • 2.1. の長所
    • パブリックサブネットとプライベートサブネット両方をNFWで検査できる。
  • 2.2. の長所
    • プライベートサブネットに対し柔軟なルール設定ができる。

では、これらをいいとこどりすることはできないのでしょうか?

3. いいとこどりはできないのか

主題になります。
本記事の結論としては「いいとこどりはできない」となります。

まず、2.1. の構成で「プライベートサブネットに対し柔軟なルール設定」を実現しようとすると、NAT Gatewayを量産することになります。上でも触れていますが、利用料の増加や運用の煩雑化を招くため、あまり良い構成とは言えません。

次に2.2. の構成で「パブリックサブネットとプライベートサブネット両方をNFWで検査」しようとすると、ルーティングで不都合が生じます。この構成では、NFWサブネット(10.0.0.0/2410.0.1.0/24)の次段がNAT Gatewayとなっているため、NFWを通過したトラフィックは全てNAT Gatewayに流れていきます。ですので、パブリックサブネットとして定義したはずなのに、ルーティングはプライベートサブネットのそれ(NAT Gatewayを通ってしまう)という妙な事態になります。これはインバウンド通信において致命的で、インターネットからの往路はホストの持つパブリックIPで受け付けるが、復路はNAT Gatewayの持つパブリックIPで出ていくという形になってしまいます。

解決策として、原因から行くとNFWサブネットをパブリック用にもう一つ準備する(デフォルトルートがIGWに向いたサブネットを用意する)ことが一見有効そうですが、NFWに関連付けられるサブネットの上限はAvailability Zoneにつき1つと定められていますので(出典)、NFWそのものをもう一つ準備することになってしまいます。

4. まとめ

ざっとまとめます。

  • パブリックサブネットとIGWの間にNFWを配置した場合(2.1.)
    • プライベートサブネット/パブリックサブネット問わず検査できる
    • プライベートサブネットのIPはNFWから見えない(NAT後のIPとみなされる)
  • プライベートサブネットとNAT Gatewayの間にNFWを配置した場合(2.2.)
    • プライベートサブネットに対し柔軟なルール設定ができる
    • パブリックサブネットのトラフィックは検査できない(NFWを追加する必要がある)

ということで、単一VPCでNFWを使用する際の構成例と注意点でした。

松田 渓(記事一覧)

2021年10月入社。散歩が得意です。