説明
デフォルトのファイアウォールルールは、環境に不要なアクセスを許可する場合があります。名前と目的を明確にしたルールは、通信を許可する理由を確認しやすくします。ただし、名前に 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 が実際に必要かも確認してください。