为GKE配置IAP后,如何让指定服务绕过IAP连接的方案咨询
可行解决方案汇总
以下是几种让Service 2绕过IAP访问受保护的Service 1的方案,覆盖不同场景:
1. IAP IP白名单授权
- 核心逻辑:利用IAP自带的IP白名单功能,允许Service 2的VM IP直接跳过IAP验证访问Service 1
- 操作步骤:
- 找到Service 1对应的GCP全局负载均衡后端服务
- 在IAP配置的授权范围中,添加Service 2的VM的公网IP(或同VPC下的内网IP)
- 保存配置后,Service 2从该IP发起的请求会直接绕过IAP身份验证
- 适用场景:Service 2的IP固定(静态公网IP或内网IP),无需额外部署资源,改动最小
2. 同VPC下直接访问GKE服务(ClusterIP/NodePort)
- 核心逻辑:若Service 2与GKE集群在同一VPC内,直接通过K8s原生服务的内网IP访问,完全绕开外部LB和IAP
- 操作步骤:
- 若用ClusterIP:配置K8s NetworkPolicy,允许Service 2的VM IP段访问Service 1的ClusterIP;同时在GCP防火墙中放行VPC内该IP段到ClusterIP的流量
- 若用NodePort:给Service 1配置NodePort类型,在GCP防火墙中允许Service 2的VM IP访问GKE节点的对应端口
- 适用场景:同VPC环境,零额外负载均衡成本,利用原生K8s资源即可实现
3. 复用现有Global LB的路径规则分流
- 核心逻辑:在现有Global LB上新增无IAP的后端服务,通过URL路径规则将Service 2的钩子请求路由到该后端,其他请求仍走IAP保护的后端
- 操作步骤:
- 创建新的后端服务,指向Service 1的Pod/端点,关闭IAP保护
- 在Global LB的URL映射中添加路径匹配规则(比如匹配
/api/webhook),将该路径的请求路由到新后端 - 原有的其他路径仍路由到启用IAP的后端服务
- 适用场景:需要通过同一域名访问Service 1,仅特定钩子路径需绕过IAP的场景,无需新增LB
4. VPC对等连接(跨VPC场景)
- 核心逻辑:若Service 2与GKE集群分属不同VPC,配置VPC对等连接后,通过内网IP访问Service 1的内部LB或ClusterIP,绕开外部IAP
- 操作步骤:
- 建立两个VPC的对等连接,配置路由条目允许双向流量
- 配置GCP防火墙,允许Service 2所在VPC的IP段访问Service 1的内网IP
- Service 2直接使用Service 1的内网IP发起请求
- 适用场景:跨VPC部署的服务,流量走内部网络,安全性更高
内容的提问来源于stack exchange,提问作者bugZ
相关产品推荐
相关产品推荐

