我正在尝试将可以访问我的应用程序的IP列入白名单。我按照本教程创建了http-balancer。 https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
使用NodePort
创建服务后,我创建了一个类似下面的ingress.yaml
文件。我创建了一个全局静态IP并设置了一个域名。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
spec:
rules:
- host: <domain_name>
- http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
上面的yaml文件工作正常,我可以访问“欢迎使用Nginx”页面。
但是,当我添加要列入白名单的IP时,它似乎不起作用,仍然允许其他未列入白名单的IP。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
ingress.kubernetes.io/whitelist-source-range: "xx.xx.xx.xxx/32"
spec:
rules:
- host: <domain_name>
- http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
参考: http://container-solutions.com/kubernetes-quick-tip/ https://docs.giantswarm.io/guides/advanced-ingress-configuration/
答案 0 :(得分:1)
我没有使用Ingress,但根据正常的nginx规则,你需要拒绝所有,然后允许白名单IPS
`location / {
proxy_pass https://xxx.xx.xx.xx:8080
allow xx.xx.xx.xxx/32;
deny all;
allow xx.xx.xx.xxx/32;
}`
哪个内容不允许使用非白名单的IP。
答案 1 :(得分:0)
您提供的参考资料使用Nginx-based ingress controller。
GKE上的Ingress使用http(s) load balancer。目前,GCP上的http(s)负载均衡器不支持允许或拒绝IP流量的防火墙规则。
你可以:
自行阻止Web服务器或应用程序中的源IP。
或