You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform管理GCP防火墙策略:ID获取与导入问题咨询

问题解决与说明

关于Terraform导入命令的猜测

你的猜测不正确,导入分层防火墙策略时需要使用防火墙策略自身的数字ID,而非文件夹ID。报错信息里的正则(firewallPolicies/)?[0-9]{0,20}明确要求ID是纯数字格式。

获取防火墙策略数字ID并正确导入

  1. 用gcloud命令获取手动创建的策略ID:
    gcloud compute firewall-policies describe fw-policy-name --format="value(id)"
    
  2. 执行正确的导入命令:
    terraform import google_compute_firewall_policy.fw-policy-name <POLICY_NUMERIC_ID>
    

文件夹相关操作

创建新文件夹

  • GCP控制台方式:进入「IAM与管理」>「资源管理器」,点击「创建文件夹」,填写名称并选择父资源(组织或现有文件夹)。
  • gcloud命令方式:
    gcloud resource-manager folders create --display-name="your-folder-name" --parent=organizations/<YOUR_ORG_ID>
    
    若没有组织,可指定项目作为父资源:--parent=projects/<YOUR_PROJECT_ID>

查看现有防火墙策略的所属层级

执行以下命令查看策略的父资源(即所属文件夹/组织/项目):

gcloud compute firewall-policies describe fw-policy-name --format="value(parent)"

输出示例:folders/123456789、organizations/987654321 或 projects/your-project-id

Terraform管理计算实例防火墙的建议

如果你的需求仅为管理单项目内计算实例的网络/防火墙规则,无需使用分层防火墙策略(google_compute_firewall_policy),直接使用项目级防火墙资源google_compute_firewall即可,配置更简单:

resource "google_compute_firewall" "instance_fw" {
  name    = "allow-ssh"
  network = google_compute_network.default.name

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["ssh-access"]
}

若确实需要分层策略管理多项目/文件夹的防火墙规则,需在Terraform资源块中明确指定父层级:

resource "google_compute_firewall_policy" "fw-policy-name" {
  parent      = "folders/<YOUR_FOLDER_ID>"
  short_name  = "fw-policy-name"
  description = "Centralized hierarchical firewall policy"
}

内容的提问来源于stack exchange,提问作者baxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:45:22