[英]Is it safe to have an internal ClusterIp backend service using HTTP behind an Ngynx Ingress controller accessible via HTTPS?
我有一個服務配置為可通過 HTTP 訪問。
kind: Service
apiVersion: v1
metadata:
name: myservice
spec:
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
和一個 Ngynx Ingress 配置為使該內部服務可從特定的安全 subdomain.domain 訪問
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: myservice-ingress
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/myservice-ingress
annotations:
certmanager.k8s.io/issuer: letsencrypt-prod
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTP
spec:
tls:
- hosts:
- myservice.mydomain.com
secretName: myservice-ingress-secret-tls
rules:
- host: myservice.mydomain.com
http:
paths:
- path: /
backend:
serviceName: myservice
servicePort: 80
status:
loadBalancer:
ingress:
- {}
因此,當我到達https://myservice.mydomain.com時,我可以通過 HTTPS 訪問我的服務。 是否足夠安全,或者我應該將我的服務和 Pod 配置為僅通過 HTTPS 進行通信?
這是預期的行為,因為您在 Ingress 中設置了TLS
。
請注意,默認情況下,如果為該入口啟用了 TLS,則controller會將(308) 重定向到HTTPS 。 如果要全局禁用此行為,可以在 NGINX ConfigMap中使用 ssl-redirect: "false" 。
要為特定入口資源配置此功能,您可以在特定資源中使用nginx.ingress.kubernetes.io/ssl-redirect: "false"
注釋。
關於你的問題:“它足夠安全嗎..” - 這是基於意見的問題,所以我可以回答使用更好HTTPS
,而不是HTTP
,但這只是我的意見。 您總能找到HTTP
和HTTPS
之間的區別
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.