GCP のデフォルトファイアウォールルールの許可範囲の確認

ルール名だけでなく、実際の送信元、対象、プロトコル、ポートを確認してください。

説明

デフォルトのファイアウォールルールは、環境に不要なアクセスを許可する場合があります。名前と目的を明確にしたルールは、通信を許可する理由を確認しやすくします。ただし、名前に default があるだけで危険とは限らず、名前を変えても権限は減りません。

想定される影響

  • 不要な送信元やサービスへのアクセスが許可されるおそれがあります。
  • ポリシーの意図が不明確だと、確認や監査が難しくなる場合があります。

対処方法

  • 実際の送信元、対象、プロトコル、ポートを業務に必要な範囲へ制限してください。
  • ルールの優先順位と依存関係を確認し、必要な接続をテストしてから不要なルールを削除してください。

例

変更前は許可・拒否の動作を省略した、名前とネットワーク参照の抜粋です。変更後の 192.0.2.0/24 は説明用のため、承認された実際のクライアント範囲に置き換え、対象 VM に web-server タグを設定してください。

変更前

hcl
resource "google_compute_firewall" "example" {
  name    = "default"
  network = google_compute_network.example.name
}

resource "google_compute_network" "example" {
  name = "test-network"
}

変更後

hcl
resource "google_compute_firewall" "example" {
  name    = "web-ingress-firewall"
  network = google_compute_network.example.name

  source_ranges = ["192.0.2.0/24"]
  target_tags   = ["web-server"]

  allow {
    protocol = "tcp"
    ports    = ["80", "8080"]
  }
}

resource "google_compute_network" "example" {
  name = "test-network"
}

補足:

  • 変更前: 名前は default ですが、この抜粋だけでは実際のアクセス範囲は決まりません。
  • 変更後: 名前に加えて送信元、対象、TCP ポートを明示します。80 と 8080 が実際に必要かも確認してください。

参考資料