如何配置IAP仅限制Cloud Load Balancer特定路径的访问权限
针对特定URL路径的IAP访问控制配置方案
要实现仅限制*/internal/*这类端点允许企业邮箱访问,无需全局启用IAP拦截,可通过IAP条件访问规则结合GKE Ingress路径配置来实现,具体步骤如下:
1. 调整GKE Ingress路径配置
确保Ingress将/internal/*路径的流量路由到对应后端,与其他路径区分开。示例Ingress YAML配置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress annotations: kubernetes.io/ingress.class: "gce" ingress.gcp.kubernetes.io/enable-iam: "true" # 启用IAP关联 # 若使用HTTPS,添加证书注解 # ingress.gcp.kubernetes.io/pre-shared-cert: "your-ssl-cert" spec: rules: - http: paths: - path: /internal/* pathType: ImplementationSpecific backend: service: name: internal-dashboard-svc port: { number: 80 } - path: /* pathType: ImplementationSpecific backend: service: name: public-dashboard-svc port: { number: 80 }
应用配置:kubectl apply -f your-ingress.yaml
2. 配置IAP条件访问规则
在Google Cloud控制台中操作:
- 进入IAP页面,找到关联的GCLB负载均衡器资源
- 点击该资源的访问控制选项卡,删除原全局拦截规则(若存在)
- 创建新规则:
- 规则类型选择「允许」,优先级设为较高值(如100,确保优先匹配)
- 添加条件:选择「请求路径」,匹配类型选「匹配正则表达式」,输入
.*\/internal\/.* - 添加成员:输入企业邮箱账号或群组(如
*@yourcompany.com)
- 创建默认规则:
- 规则类型选择「允许」,优先级设为较低值(如200)
- 添加成员:选择「所有用户」(或根据需求设置其他公开权限)
3. 验证效果
- 访问非
/internal/*路径:直接进入仪表盘,无登录验证 - 访问
/internal/*路径:跳转至Google账号登录页,仅企业邮箱账号可通过验证并访问
内容的提问来源于stack exchange,提问作者Shahrear Bin Amin
相关产品推荐
相关产品推荐

