【问题标题】:Gcloud Cloud Armor for grpc web service in GKE - is there a working config?用于 GKE 中 grpc Web 服务的 Gcloud Cloud Armor - 是否有工作配置?
【发布时间】:2022-11-11 15:28:41
【问题描述】:

我有一个在 Google Kubernetes Engine 中运行的基于 grpc 的 Web 服务,但我没有将 Cloud Armor 应用到它上面。 目前,此 Web 服务通过外部负载均衡器类型的 Kubernetes 服务公开,该服务绑定到 Gcloud 中的外部 TCP/UDP 网络负载均衡器,并且一切正常。 问题是 Cloud Armor 无法应用于外部 TCP/UDP 网络负载平衡器。 因此,我尝试通过节点端口和集群 IP 类型的 Kubernetes 服务公开 Web 服务,以便能够绑定到将使用 Cloud Armor 支持的负载均衡器的 Ingress(全局外部 HTTP(S)、全局外部 HTTP (S)(经典)、外部 TCP 代理或外部 SSL 代理)。 但我似乎找不到真正正确处理 grpc 流量并进行运行状况检查的配置。 有没有其他人能够在受 Cloud Armor 保护的 GKE 之外获得基于 grpc 的 Web 服务?

更多背景: Web 服务是基于 Go 的,并且有两个功能来促进 Kubernetes 健康检查。首先,它支持带有 grpc-health-probe 的标准 grpc 健康协议,并且它内置的容器也具有 grpc-health-probe 可执行文件(这对于 pod 活跃度/就绪性检查来说似乎可以正常工作)。其次,它还在侦听 http/2 grpc 流量的同一端口上的“/”路由上提供 http(1) 200/OK。 Web 服务使用 CA 签名证书和 4096 位密钥通过 TLS 运行,并且当前终止 TLS 客户端流量本身。但我愿意让 TLS 流量在边缘/负载均衡器处终止,如果它可以用于 grpc 调用。

【问题讨论】:

    标签: kubernetes grpc google-cloud-armor


    【解决方案1】:

    Cloud Armor SSL TCP proxy 可用,但有一些限制:

    用户可以重复使用现有的 Cloud Armor 安全策略(后端安全策略)或创建新的。

    TCP/SSL 代理后端服务仅支持具有以下规则属性的安全策略:

    • 匹配条件:IP、地理、ASN

    • 操作:允许、拒绝、限制、基于速率的禁止

    可用性和限制:

    • 可以在控制台或通过 API/CLI 创建/配置安全策略

    • 只能通过API/CLI 将新的或现有的安全策略附加到 TCP/SSL 代理前端的后端服务。

    • 要启用 Cloud Logging 事件,请利用 CLI/API 在相关后端服务上启用 TCP/SSL 代理日志记录,如 Load Balancer documentation 中所述

    有一个Network Load Balancer 选项将进入市场,目前是预 GA。预计将在 2023 年上半年的某个时间全面上市。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-02
      • 2021-05-20
      • 2020-05-14
      • 1970-01-01
      • 2020-10-09
      • 2021-07-31
      • 2019-02-10
      • 1970-01-01
      相关资源
      最近更新 更多