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

如何列出GCP组织内各项目中含默认防火墙规则的所有VPC?

获取GCP组织内带默认防火墙规则的VPC列表

没有直接的单条gcloud命令可以完成这个需求,但可以通过结合gcloud命令和Shell脚本(比如Bash)遍历组织内所有项目,逐个检查每个VPC是否包含默认防火墙规则。

实现步骤

  1. 获取组织内所有项目ID
    使用以下命令列出指定组织下的所有项目(替换your-organization-id为实际组织ID,若无需限制组织可去掉--organization参数):

    gcloud projects list --organization=your-organization-id --format="value(projectId)"
    
  2. 遍历项目并检查VPC的默认防火墙规则
    编写Bash脚本自动完成遍历和检查:

    # 替换为你的组织ID,或移除--organization参数获取所有可访问项目
    ORG_ID="your-organization-id"
    
    # 获取组织内所有项目ID
    PROJECTS=$(gcloud projects list --organization=$ORG_ID --format="value(projectId)")
    
    for PROJECT in $PROJECTS; do
      echo "=== 项目: $PROJECT ==="
      # 获取项目内所有VPC网络
      NETWORKS=$(gcloud compute networks list --project=$PROJECT --format="value(name)")
      for NETWORK in $NETWORKS; do
        # 检查VPC是否包含典型的默认防火墙规则(可根据需求调整过滤条件)
        DEFAULT_RULES=$(gcloud compute firewall-rules list --project=$PROJECT --filter="network:$NETWORK AND name:(default-allow-icmp OR default-allow-internal OR default-allow-rdp OR default-allow-ssh)" --format="value(name)")
        if [ ! -z "$DEFAULT_RULES" ]; then
          echo "VPC: $NETWORK 包含默认防火墙规则"
          echo "默认规则列表:"
          echo "$DEFAULT_RULES"
          echo ""
        fi
      done
    done
    

注意事项

  • 确保你拥有足够权限:需要resourcemanager.projects.list权限列出项目,以及compute.firewalls.list、compute.networks.list权限查询VPC和防火墙规则,通常roles/editor角色可满足需求。
  • 默认防火墙规则是GCP创建默认VPC时自动生成的,若手动创建同名规则也会被检测到,可根据实际场景修改过滤条件。
  • 若只需检查默认VPC(即名称为default的VPC),可在获取VPC列表时添加过滤条件:--filter="name:default"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:20:39