我正在尝试使用安全组仅允许来自特定 IP 的 https 流量。我已经创建了入口服务和资源。 (引用: NGINX Controller
我尝试在 Ingress Service 上进行以下配置。
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {cert}
# the backend instances are HTTP
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
# Map port 443
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: {SG Allowing ingres from IP}
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: http
我也在下面尝试了资源。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: {SG Allowing ingres from IP}
ingress.kubernetes.io/whitelist-source-range: "IP"
spec:
rules:
- host: test.com
http:
paths:
- backend:
serviceName: backend
servicePort: 8080
path: /
我错过了什么?
我在负载均衡器上看到自动生成的 SG,它允许所有入站流量。但我不确定它是由服务还是资源创建的。如果可以直接编辑它。
更新:
自动生成的 SG
我添加了另一个 SG,它限制了 IP 的入口但没有被应用。
最佳答案
在入口的服务定义中添加以下部分
spec:
loadBalancerSourceRanges: //add this section
- 127.0.0.1/32
- 28.50.20.12/31
type: LoadBalancer
默认行为是当您不指定
loadBalancerSourceRanges
时它默认为 0/0希望这可以帮助。
关于amazon-web-services - 负载均衡器上的入口 ip 白名单 - aws k8s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55296543/