限制 Google HTTP(S) LoadBalancer 使用 GKE 中的 Kubernetes Ingress 使用的 SSL 协议
Limit SSL protocols to be used by Google HTTP(S) LoadBalancer with Kubernetes Ingress in GKE
-
google-cloud-platform
-
kubernetes
-
google-kubernetes-engine
-
kubernetes-ingress
-
google-cloud-load-balancer
我们正在使用托管在 Google Kubernetes Engine 上的 Kubernetes v1.19.13。我们想要配置一个 Ingress 控制器,以便 Google HTTP(S) LoadBalancer 配置为仅允许 TLS 1.2 和 1.3 以及这些 features/ciphers:
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
我们更愿意使用注释来执行此操作,但我们发现的大多数示例都使用 ConfigMap 或 FrontendConfig。
是否可以使用注释进行配置?如果没有,推荐的实现方式是什么?
请注意,我们要使用 Kubernetes 而不是使用 Google 云控制台进行配置。
要将 Ingress 控制器配置为仅允许 TLS 1.2 和 1.3,您可以使用 ngnix.ingress.kubernetes.io/proxy-ssl-protocols 注释。
nginx.ingress.kubernetes.io/proxy-ssl-protocols:启用指定的 protocols 请求代理 HTTPS 服务器。
例如:
注释["nginx.ingress.kubernetes.io/proxy-ssl-protocols"] = "TLSv1.2 TLSv1.3"
要将 Ingress 控制器配置为密码,您可以使用 ngnix.ingress.kubernetes.io/proxy-ssl-ciphers 注释。 nginx.ingress.kubernetes.io/proxy-ssl-ciphers:指定启用ciphers for requests to a proxied HTTPS server. The ciphers are specified in the format understood by the OpenSSL library.
使用 ssl_ciphers 注释将在服务器级别设置 ssl_ciphers 指令。此配置对主机中的所有路径均有效。
例如密码:
nginx.ingress.kubernetes.io/ssl-ciphers: "ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
参考SSL-ciphers了解更多信息。
您将无法使用注释来执行此操作。您目前无法通过注释创建 SSL 策略。 SSL 政策需要 created 通过 gcloud CLI 或通过 GCP API.
然后您需要创建引用该策略的 FrontendConfig 资源,然后将其附加到您的入口资源:
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
name: FRONTENDCONFIG_NAME
spec:
sslPolicy: allowed-ciphers
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
networking.gke.io/v1beta1.FrontendConfig: "FRONTENDCONFIG_NAME"
...
好消息是您可以(重新)使用 SSL 策略 and/or FrontendConfig。
如果您想通过 k8s API 完成所有操作,您可以尝试使用 Config Connector and create ComputeSSLPolicy 资源。
google-cloud-platform
kubernetes
google-kubernetes-engine
kubernetes-ingress
google-cloud-load-balancer
我们正在使用托管在 Google Kubernetes Engine 上的 Kubernetes v1.19.13。我们想要配置一个 Ingress 控制器,以便 Google HTTP(S) LoadBalancer 配置为仅允许 TLS 1.2 和 1.3 以及这些 features/ciphers:
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
我们更愿意使用注释来执行此操作,但我们发现的大多数示例都使用 ConfigMap 或 FrontendConfig。
是否可以使用注释进行配置?如果没有,推荐的实现方式是什么?
请注意,我们要使用 Kubernetes 而不是使用 Google 云控制台进行配置。
要将 Ingress 控制器配置为仅允许 TLS 1.2 和 1.3,您可以使用 ngnix.ingress.kubernetes.io/proxy-ssl-protocols 注释。 nginx.ingress.kubernetes.io/proxy-ssl-protocols:启用指定的 protocols 请求代理 HTTPS 服务器。
例如: 注释["nginx.ingress.kubernetes.io/proxy-ssl-protocols"] = "TLSv1.2 TLSv1.3"
要将 Ingress 控制器配置为密码,您可以使用 ngnix.ingress.kubernetes.io/proxy-ssl-ciphers 注释。 nginx.ingress.kubernetes.io/proxy-ssl-ciphers:指定启用ciphers for requests to a proxied HTTPS server. The ciphers are specified in the format understood by the OpenSSL library.
使用 ssl_ciphers 注释将在服务器级别设置 ssl_ciphers 指令。此配置对主机中的所有路径均有效。
例如密码:
nginx.ingress.kubernetes.io/ssl-ciphers: "ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
参考SSL-ciphers了解更多信息。
您将无法使用注释来执行此操作。您目前无法通过注释创建 SSL 策略。 SSL 政策需要 created 通过 gcloud CLI 或通过 GCP API.
然后您需要创建引用该策略的 FrontendConfig 资源,然后将其附加到您的入口资源:
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
name: FRONTENDCONFIG_NAME
spec:
sslPolicy: allowed-ciphers
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
networking.gke.io/v1beta1.FrontendConfig: "FRONTENDCONFIG_NAME"
...
好消息是您可以(重新)使用 SSL 策略 and/or FrontendConfig。
如果您想通过 k8s API 完成所有操作,您可以尝试使用 Config Connector and create ComputeSSLPolicy 资源。