1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

異なるVPCのNetwork Firewall でドメインベースのアクセス制御をする際はHOME_NETの上書きが必要

Posted at

AWS Network Firewall で複数の VPC エンドポイントのサポートを開始

のアナウンスがありましたので、異なるVPCエンドポイント上のNetworkFirewallを使用してみましたが、つまづきポイントがあったためメモがてらに。

構成は以下のような形です。

Screenshot 2025-08-13 at 22.41.40.png

何につまづいたか?

ルーティングやVPCエンドポイント等の設定はうまくいってるはずなのに、NetworkFirewallがうまく動かなかった。

具体的には、ホワイトリスト方式のドメイン制御をしていたのですが、NFWに指定しているドメインでも疎通ができませんでした。

解決策

NetworkFirewallのポリシーの設定でポリシー変数を編集し、Network Firewall から“送信元として見える”CIDRを入力すると、解決します。

AWSの推奨では、NetworkFirewallのVPCのCIDRも併記したほうがよいみたいです(上書きで既定が消えるため)

Screenshot 2025-08-13 at 23.03.43.png

ちなみに、このポリシー変数ですが、AWSコンソール上だとわかりにくいので注意です。

「ファイアウォールのポリシー」> 「詳細」タブ > 「Policy variables」に編集ボタンがあります。

なぜ必要?

既定の $HOME_NET は 「Network Firewall を配置した VPC の CIDR」 だけです。

検査VPC(Inspection VPC)方式や、別VPCからの関連付け(複数VPCエンドポイント)では、そのままだとワークロードVPCのトラフィックが検査対象外になります。

参照: AWS Documentation

Terraformでの実装例

resource "aws_networkfirewall_firewall_policy" "main" {
  name = "outbound-policy"
  firewall_policy {
    stateful_engine_options { rule_order = "STRICT_ORDER" }
    stateful_default_actions = ["aws:drop_established"]

    # ← ここに追記
    policy_variables {
      rule_variables {
        key = "HOME_NET"
        ip_set {
          # 例: ワークロードVPC + 検査VPC
          definition = ["10.100.0.0/16", "10.200.0.0/16"]
        }
      }
    }

    stateful_rule_group_reference {
      resource_arn = aws_networkfirewall_rule_group.domain_allow.arn
      priority     = 10
    }
  }
}

以上です。他につまづいた方の参考になれば!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?