みなさん、こんばんは。サニービュー事業部の小寺です。
Network FirewallでIPv6サポートが提供開始されております。

https://aws.amazon.com/jp/about-aws/whats-new/2023/01/aws-network-firewall-ipv6-support/

そもそもNetwork Firewallとは?

AWS Network FirewallはVPCのサブネットに配置する新しいマネージド型ファイアウォールサービスとして2020年11月にGAになっています。
大阪リージョンと東京リージョンで既に利用することができます。

AWS Network Firewallを使うためにはファイアウォールポリシーとルールの作成が必要です。ポリシーとルールの作成ができると、トラフィックをエンドポイントに切り替え、AWS Firewall Managerで一元管理をすることができます。

ファイアウォールの構成は大きく以下の3つに分かれています。
・ファイアウォール
ファイアウォールは、保護する VPC を、ファイアウォールポリシーで定義されている保護動作に接続します。保護するアベイラビリティーゾーンごとに、ファイアウォールエンドポイント専用のパブリックサブネットをネットワークファイアウォールに提供します。
ファイアウォールを使用するには、VPC ルートテーブルを更新して、ファイアウォールのエンドポイントを介して着信トラフィックと発信トラフィックを送信します。

・ファイアウォールポリシー
ファイアウォールポリシーは、ステートレスおよびステートフルなルールグループおよびその他の設定のコレクションで、ファイアウォールの動作を定義します。各ファイアウォールは 1 つのファイアウォールポリシーにのみ関連付けることができますが、1 つのファイアウォールポリシーを複数のファイアウォールに使用できます。

・ルールグループ
ネットワークファイアウォールのルールグループは、ネットワークトラフィックの検査と処理方法を定義するステートレスまたはステートフルなルールのコレクションです。
ルールの設定には、5 タプルとドメイン名のフィルタリングが含まれます。Suricata オープンソースルール仕様を使用してステートフルなルールも使えます。

ファイアウォールルール設定のポイント

ステートレスルールグループ、ステートフルルールグループが作成できます。

1) ステートレスルールグループ

• どのようにトラフィックを検査するかのルールを、ACLのように優先度(評価順)つけて追加していくことができます
• ルールは、上から下へ評価されます。
• ルールにマッチしなかった場合のアクションが指定可能です(ドロップ/パス/ステートフルルールに移行)
• ステートレスであるため、Ingress/Egress両方を設定

2) ステートフルルールグループ

• どのようにトラフィックを検査するかのルールを、優先度を付けずに追加していくことができます
• トラフィックをパスするルールが常に優先され、マッチしなかった場合のアクションはPass固定となる
• ステートフルなので、パスした通信に対する応答トラフィックは、自動的にパスされる

オプションとして、以下2つも選べます。デフォルトでは「5-tuple」になっています。

ステートフルドメインリストフィルタ
• Web通信(HTTP/HTTPS)を宛先ドメインベースでフィルタができます
• マッチしなかったときのアクションが指定可能です(ドロップ/パス)
• ワイルドカード指定可能(例: “.example.com” → example.comのすべてのサブドメインを指定)
• 厳密評価で使用がでいないことに注意が必要です

Suricata互換IPS
• 侵入防止システム (IPS) ルール – Suricata ルール構文を使用して高度なファイアウォールルールを作ることができます
• ステートフル5-tupleフィルタ、ステートフルドメインリストフィルタはこの機能でも実現可能
• 様々なルールを組み合わせて記載する場合は、こちらに集約してしまうと運用が楽になる
• 評価順が指定可能になるなど、柔軟な制御が可能になり、機能も豊富です
• Suricataのシグネチャ作成の知識が必要です

更にAWS マネージドルールグループも利用することができます。

3)AWS マネージドルールグループ

マネージドルールグループは、AWS がお客様のために書き込みと維持を行う事前定義されたすぐに使用できるルールのコレクションです。
ファイアウォールポリシーにルールとして利用したいものを選び、追加することができます。

利用開始までのステップ

1)VPC用にファイアウォール用のサブネットを作成します。
ファイアウォール専⽤にすることが推奨されています。このサブネットに他のリソースを配置してしまうと、そのリソースは検査できなくなってしまうためです。

2)ファイアウォールを作成します
・ファイアウォールを作成をクリックします。

・ファイアウォールの詳細を入力します。
ここでは、アップデートのされた確認のために「ファイアウォールサブネット」のIPアドレスタイプに「DualStack」を選びます。

・選択したサブネットにファイアウォールエンドポイントが作成されました。

3)ファイアウォールのルール設定を行います。

4)ルーティングの設定を行います。
• 検査対象トラフィックがファイアウォールエンドポイントを通過するようにVPCのルートテーブルの設定を行います。
たとえば、VPC サブネットとインターネットゲートウェイまたはトランジットゲートウェイの間にファイアウォールエンドポイントを入れることができます。

アップデート内容

AWS Network Firewall のエンドポイントがデュアルスタックサブネットのIPv4とIPv6 の両方のトラフィックをフィルタリングできるようになりました。
アップデート前はIPv4だけでしたが、本アップデートによりIPv6にも対応ができるようになっています。
デュアルスタックサブネットとは、IPv4 CIDR ブロックと IPv6 CIDR ブロックの両方を持つサブネットです。デュアルスタックサブネットのリソースは、IPv4とPv6 を介して通信をすることができます。

デュアルスタックについては、パブリックIPv4が枯渇しつつあり、大規模なマルチリージョンデプロイメントやコンテナの導入によりプライベートIPv4の不足、IPv6のみに接続性を持つクライアントへのサービス提供の必要性などから、IPv6を利用することが増えています。

対象リージョン

IPv6 は AWS GovCloud (米国) リージョンを含む、AWS Network Firewall が現在利用可能なすべての AWS リージョンで利用ができます。