哪些通道应该在 Kubernetes 集群中使用 SSL?
Which channels should use SSL in a Kubernetes cluster?
我有以下 Kubernetes 设置(请原谅糟糕的 ASCII 艺术):
Azure SQL DB_1 > deployment_1 > service_1 \
Azure SQL DB_2 > deployment_2 > service_2 > -> nginx_ingress
Azure SQL DB_N > deployment_N > service_N /
数据库在 Kubernetes 集群之外。它们通过 Private Endpoint 暴露给 Kubernetes 集群所在的 VNet。他们在该 VNet 中获得一个私有 IP 地址,否则无法访问。
每个部署都是一个不同的微服务。每个人前面都有一个服务来处理通信。反过来,所有这些服务都可以通过 NGINX 入口访问。所有服务都配置为 ClusterIP,因此无法从集群外部访问它们。来自 VNet 外部的唯一入口点是通过入口。
我的问题是,这些渠道中的哪些应该使用 SSL 保护,哪些地方不值得(例如,因为影响性能)?
- 当然,Ingress 前面会有 SSL。这是给定的。
- 入口和服务之间是否应该有 SSL?
- 服务和它们背后的微服务之间是否应该有SSL?
- 数据库本身似乎已经自动进行了加密连接。有什么理由可以证明这是不必要的,或者相反,can/should 它可以以某种方式变得更安全?
当然,我知道更多的加密通常是一件好事。但是,例如,是否值得为微服务和服务之间的通信生成和跟踪证书,因为这些证书是集群内部的,无法通过任何其他方式访问?
感谢您提供的任何信息/示例/经验!
简单的是仅在入口层终止 TLS,因为它位于 AKS 内部(我假设)并且 AKS 的 VNET 是安全的,因此不会直接暴露于外部世界,只有入口 nginx 控制器将暴露于外部世界。
如果您使用的是 SQL 服务器,则基于数据库的通信已经在 TLS 的支持下。
除此之外,您还可以根据需要定义 CORS。
我有以下 Kubernetes 设置(请原谅糟糕的 ASCII 艺术):
Azure SQL DB_1 > deployment_1 > service_1 \
Azure SQL DB_2 > deployment_2 > service_2 > -> nginx_ingress
Azure SQL DB_N > deployment_N > service_N /
数据库在 Kubernetes 集群之外。它们通过 Private Endpoint 暴露给 Kubernetes 集群所在的 VNet。他们在该 VNet 中获得一个私有 IP 地址,否则无法访问。
每个部署都是一个不同的微服务。每个人前面都有一个服务来处理通信。反过来,所有这些服务都可以通过 NGINX 入口访问。所有服务都配置为 ClusterIP,因此无法从集群外部访问它们。来自 VNet 外部的唯一入口点是通过入口。
我的问题是,这些渠道中的哪些应该使用 SSL 保护,哪些地方不值得(例如,因为影响性能)?
- 当然,Ingress 前面会有 SSL。这是给定的。
- 入口和服务之间是否应该有 SSL?
- 服务和它们背后的微服务之间是否应该有SSL?
- 数据库本身似乎已经自动进行了加密连接。有什么理由可以证明这是不必要的,或者相反,can/should 它可以以某种方式变得更安全?
当然,我知道更多的加密通常是一件好事。但是,例如,是否值得为微服务和服务之间的通信生成和跟踪证书,因为这些证书是集群内部的,无法通过任何其他方式访问?
感谢您提供的任何信息/示例/经验!
简单的是仅在入口层终止 TLS,因为它位于 AKS 内部(我假设)并且 AKS 的 VNET 是安全的,因此不会直接暴露于外部世界,只有入口 nginx 控制器将暴露于外部世界。
如果您使用的是 SQL 服务器,则基于数据库的通信已经在 TLS 的支持下。
除此之外,您还可以根据需要定义 CORS。