负载均衡器上的入口IP白名单-AWS K8S

时间:2019-03-22 09:29:03

标签: amazon-web-services nginx kubernetes aws-eks

我试图使用安全组仅允许来自特定IP的https通信。我已经创建了Ingress服务和资源。 (参考: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 enter image description here

我添加了另一个SG,它限制了IP的入口,但没有应用。

1 个答案:

答案 0 :(得分:0)

在您的入口服务定义中,添加以下部分

spec:
  loadBalancerSourceRanges: //add this section
    - 127.0.0.1/32
    - 28.50.20.12/31
  type: LoadBalancer

默认行为是,当您不指定loadBalancerSourceRanges时,默认值为0/0

希望这会有所帮助。