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

如何通过App Engine防火墙规则限制仅VPC内Compute Engine实例访问服务?

解决App Engine灵活环境限制VPC/特定实例访问的问题

没问题,我来帮你搞定这个需求——你完全可以通过App Engine防火墙规则实现只允许目标VPC和特定实例访问,关键是要白名单实例的内部IP或者VPC的CIDR范围,下面一步步说清楚:

核心逻辑说明

当你的无外部IP GCE实例通过Private Google Access访问App Engine时,App Engine识别到的请求源IP是实例的内部IPv4地址(而不是外部IP,毕竟实例没有外部IP),所以我们只需要把这个内部IP或者整个VPC的IP段加入白名单即可。

步骤1:获取需要白名单的IP信息

  • 特定实例的内部IP:
    你可以在GCP控制台的Compute Engine实例详情页找到,或者用gcloud命令快速获取:
    gcloud compute instances describe YOUR_INSTANCE_NAME --format='value(networkInterfaces[0].networkIP)'
    
  • 整个VPC的CIDR范围:
    到VPC网络控制台找到你的目标VPC,查看它的IP地址范围(比如10.0.0.0/16这类格式)。

步骤2:配置App Engine防火墙规则

App Engine防火墙规则是优先级高的规则先生效,所以我们需要先创建允许规则,再创建拒绝所有的规则:

方式1:只允许特定实例访问

创建一个高优先级的允许规则(比如优先级100),指定实例的内部IP(注意要加/32表示单个IP):

gcloud app firewall-rules create 100 \
  --action allow \
  --source-range YOUR_INSTANCE_INTERNAL_IP/32 \
  --description "Allow access from specific GCE instance"

方式2:允许整个VPC内的实例访问

如果要放开整个VPC的权限,用VPC的CIDR范围作为源:

gcloud app firewall-rules create 100 \
  --action allow \
  --source-range YOUR_VPC_CIDR \
  --description "Allow access from entire VPC"

最后添加拒绝所有流量的规则

创建一个低优先级的规则(比如优先级1000),拒绝所有其他来源的流量:

gcloud app firewall-rules create 1000 \
  --action deny \
  --source-range 0.0.0.0/0 \
  --description "Deny all other traffic"

验证规则生效

配置完成后,你可以用目标GCE实例访问你的App Engine服务,确认能正常访问;再尝试用其他外部网络访问,应该会被拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:38:55