我试图使用安全组仅允许来自特定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,它限制了IP的入口,但没有应用。
答案 0 :(得分:0)
在您的入口服务定义中,添加以下部分
spec:
loadBalancerSourceRanges: //add this section
- 127.0.0.1/32
- 28.50.20.12/31
type: LoadBalancer
默认行为是,当您不指定loadBalancerSourceRanges
时,默认值为0/0
希望这会有所帮助。