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

如何为同一项目下的两个App Engine Flex实例设置差异化访问限制

针对App Engine Flex实例的差异化访问限制方案

1. 利用App Engine服务级配置实现差异化控制

每个App Engine Flex实例所属的服务可以单独通过app.yaml配置访问规则,这是实现差异化限制最直接的方式:

  • 允许同项目/跨项目服务访问:在目标服务的app.yaml中设置ingress规则,限定仅内部流量和云负载均衡流量可访问:
    ingress: internal-and-cloud-load-balancing
    
    若要进一步限制到特定服务账号,可通过IAM给对应账号授予roles/appengine.appViewer或自定义权限角色。
  • 允许本地机器访问:针对需要开放本地访问的实例,在其服务的app.yaml中添加公网IP白名单:
    network:
      allowed_ranges:
        - 你的本地公网IP/32
    
    不同服务可配置不同的allowed_ranges,实现各自独立的本地访问限制。

2. 结合负载均衡与身份感知代理(IAP)做精细化控制

如果需要更复杂的权限区分,可通过负载均衡+IAP实现:

  • 为两个实例分别配置独立的后端服务,挂载到同一或不同的Cloud Load Balancer上。
  • 针对每个后端服务单独配置IAP授权策略:
    • 给同项目/跨项目的服务账号授予roles/iap.httpsResourceAccessor角色,允许其访问对应实例。
    • 将你的个人Google账号加入IAP授权列表,实现本地访问权限。
      这种方式可完全独立控制每个实例的访问群体。

3. 应用层校验+服务账号认证

在应用代码中加入自定义校验逻辑,实现高度灵活的差异化限制:

  • 要求访问请求携带服务账号签发的JWT令牌,在应用层验证令牌的签发主体(限定为指定项目的服务账号)。
  • 对于本地访问,可通过X-Forwarded-For header获取真实客户端IP,结合IP白名单校验;或使用临时服务账号密钥在本地发起认证请求。

关键注意事项

  • App Engine Flex的ingress和网络配置是服务级别的,因此两个实例必须属于不同的App Engine服务(不能是同一服务的不同版本),才能单独配置规则。
  • VPC防火墙规则仅作用于实例的内部IP,无法限制外部访客流量(因为外部流量经Google前端转发,实例看到的是Google的IP),因此外部访问限制必须依赖上述方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:57:16