如何配置App Engine防火墙,仅允许家用电脑及网站访问API?
在App Engine中为API添加网站访问权限的配置方法
你已经设置了拒绝所有IP的防火墙规则,现在要添加网站的访问权限,分两种场景处理:
场景1:网站部署在GCP内部服务(同属App Engine/Cloud Run/GCE等)
因为GCP内部服务的出站IP可能动态变化,用IP白名单不稳定,推荐用服务账号授权:
- 找到网站服务对应的服务账号(比如App Engine网站服务的默认服务账号,格式一般是
项目ID@appspot.gserviceaccount.com) - 进入API所在的App Engine服务的IAM设置页面,添加该服务账号,授予合适的权限(比如
roles/appengine.appViewer,或者自定义仅允许调用API的角色) - 这样只有网站服务通过该服务账号发起的请求能访问API,无需依赖IP。
场景2:网站部署在第三方平台(如AWS、Cloudflare托管的独立站点)
需要获取网站的固定出站IP/IP段,添加到防火墙白名单:
- 联系网站托管平台,获取其提供的出站IP范围(比如Cloudflare会公布全球节点的IP段)
- 进入App Engine的防火墙规则设置页面,新建一条优先级高于拒绝所有规则的允许规则
- 在规则中填入网站的IP/IP段,设置目标为你的API服务,允许所有请求方法
- 保存规则后,网站发起的请求就能正常访问API了
额外注意
- 如果网站使用了CDN,务必添加CDN的出站IP段,而非网站源站IP,因为请求是由CDN节点转发的
- 定期检查托管平台的IP更新公告,避免IP段变动导致权限失效
内容的提问来源于stack exchange,提问作者Zach Gonzalez
相关产品推荐
相关产品推荐

