Cloud 端口443上的Google云过滤应用程序(防火墙优先级问题)
更具体地说,我需要帮助理解如何创建谷歌云防火墙规则,以便允许从特定IP地址访问特定环境,以及从同一端口上的公共互联网访问访问其他所有内容 在我的例子中,我有一个GKE,其中有许多pod,它们通过特定的服务访问,并具有自己的静态公共IP地址 其中一个是我的主生产环境,但其他的是我的暂存环境,我在其中部署我的更改并在它们公开之前测试它们 问题是,当我尝试添加防火墙规则以匹配该环境,并通过端口443上的特定IP(我的静态IP)访问时,即使我的优先级低于防火墙规则,它也不会优先,因为防火墙规则声明每个人0.0.0.0/0都可以访问端口443上的生产环境 我更改的是优先级低于默认值1000(我的生产防火墙优先级规则为1000),但它不起作用。env可以公开访问 防火墙规则生成:入口-优先级1000,允许, tcp:443,80,0.0.0.0/0 防火墙规则环境:入口-优先级900,允许,tcp:443,80, x、 x.x.x(我的公共IP)Cloud 端口443上的Google云过滤应用程序(防火墙优先级问题),cloud,google-compute-engine,google-kubernetes-engine,firewall,Cloud,Google Compute Engine,Google Kubernetes Engine,Firewall,更具体地说,我需要帮助理解如何创建谷歌云防火墙规则,以便允许从特定IP地址访问特定环境,以及从同一端口上的公共互联网访问访问其他所有内容 在我的例子中,我有一个GKE,其中有许多pod,它们通过特定的服务访问,并具有自己的静态公共IP地址 其中一个是我的主生产环境,但其他的是我的暂存环境,我在其中部署我的更改并在它们公开之前测试它们 问题是,当我尝试添加防火墙规则以匹配该环境,并通过端口443上的特定IP(我的静态IP)访问时,即使我的优先级低于防火墙规则,它也不会优先,因为防火墙规则声明每个人
我错过了什么?其他人在处理这个问题上有困难吗?谢谢。我想给你另一种方法来实现你想要的 您可以使用
nginx-ingres
公开应用程序,还可以使用所需的带有IP CIDR的注释来限制对服务的访问
但是,要将非白名单IP重定向到默认服务,您应该使用另一个名为的注释
例如:
假设您有两项服务:prod svc和dev svc
在下面的入口示例中,您允许注释nginx.ingres.kubernetes.io/whitelist source range
中的IP访问dev svc
。否则,如果连接来自注释中未列出的其他ip,则请求将重定向到prod svc
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/custom-http-errors: '403'
nginx.ingress.kubernetes.io/default-backend: prod-svc
nginx.ingress.kubernetes.io/whitelist-source-range: YOUR_PUBLIC_IP/32
spec:
rules:
- host: myapp.mydomain.com
http:
paths:
- path: "/"
backend:
serviceName: dev-svc
servicePort: 80
通过这种方式,您可以控制您的应用程序,也可以获得更大的工作灵活性。我想为您提供另一种方法来实现您的目标 您可以使用
nginx-ingres
公开应用程序,还可以使用所需的带有IP CIDR的注释来限制对服务的访问
但是,要将非白名单IP重定向到默认服务,您应该使用另一个名为的注释
例如:
假设您有两项服务:prod svc和dev svc
在下面的入口示例中,您允许注释nginx.ingres.kubernetes.io/whitelist source range
中的IP访问dev svc
。否则,如果连接来自注释中未列出的其他ip,则请求将重定向到prod svc
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/custom-http-errors: '403'
nginx.ingress.kubernetes.io/default-backend: prod-svc
nginx.ingress.kubernetes.io/whitelist-source-range: YOUR_PUBLIC_IP/32
spec:
rules:
- host: myapp.mydomain.com
http:
paths:
- path: "/"
backend:
serviceName: dev-svc
servicePort: 80
通过这种方式,您可以控制您的应用程序,也可以获得更大的灵活性。我尝试过这种方法,它对我有效,谢谢,这是一个错误,为什么我不能在防火墙部分解决这个问题,但它就是这样。我尝试过这种方法,它对我有效,谢谢,这是一个问题,为什么我不能在防火墙部分解决这个问题,但它是什么。