繁体   English   中英

我如何在 nginx 入口 controller 上使用云装甲?

[英]How can i use cloud armor on nginx ingress controller?

首先,我使用 Nginx 入口 controller 和 gke 的 helm,我使用 ModSecurity 作为 waf。 尽管如此,我正在研究一种新的 waf 来显示预防结果,而云甲看起来就像我正在寻找的东西。 不幸的是,它仅适用于 HTTP/HTTPS 负载均衡器,但我的 Nginx 入口外部负载均衡器是 TCP 负载均衡器。 据我研究,我无法将此负载均衡器的协议 TCP 转换为 HTTP/HTTPS。

 - First Question, Is this conversation possible and if it is possible, Can I use cloud armor on it.

其次,我尝试创建一个新的云负载均衡器来通过它路由流量。 不幸的是,即使我可以在它上面激活云装甲,路由也没有像我预期的那样工作,因为它无论如何都返回了 502,即使它的健康检查看起来还不错。

最后,我尝试将 BackendConfig 与 yaml 一起使用:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: armor-backendconfig
spec:
  securityPolicy:
    name: "bla-armor"

apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/backend-config: '{"ports": {"443":"bla-backendconfig"}}'
spec:
  clusterIP: xx.xx.xx.xx
  externalTrafficPolicy: Local
  healthCheckNodePort: xxxxxxx
  loadBalancerIP: xx.xx.xxxx.xx
  ports:
   - name: http
     nodePort: 31000
     port: 80
     protocol: TCP
     targetPort: http

而且它不再起作用。 那是我最后的希望。 这里有什么建议吗?

我遇到了和你一样的问题,我们有一个入口 nginx 入口 controller 我们想用云装甲保护我们的入口,这实际上是不可能的。 解决方案是创建一个谷歌云 http 负载均衡器和 create.network 端点组 (Negs) 作为我们 Lb 的后端。

要创建我们的 Negs,可以通过在 kube.netes 服务中添加注释来完成,如下所示:

cloud.google.com/neg: '{"exposed_ports": {"PORT_NUMBER":{"name": "NEG_NAME"}}}'

您必须检查 tcp 协议和源 ip 范围允许 PORT_NUMBER 的防火墙规则:LB 的 130.211.0.0/22 35.191.0.0/16。 您可以查看 google cloud lb 的文档,仅此而已。 希望能有所帮助

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM