security - HTTPS 证书和 Kubernetes (EKS)

标签 security https kubernetes

我想保护在 Kubernetes (EKS) 上运行的 Web 应用程序。连接到集群的所有节点都在私有(private)子网上运行。

我有一个前端服务和十几个后端服务。

前端服务是一个运行容器的 pod,该容器在端口 80 上运行。它被配置为附加到一个 ELB,该 ELB 仅接受来自 443 的流量和一个 https 证书。

apiVersion: v1
kind: Service
metadata:
  name: service_name
  labels:
    app: service_name
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxxxxxxx
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
spec:
  ports:
    - port: 443 # Exposed port
      targetPort: 80 # Container port
  selector:
     app: service_name
  type: LoadBalancer

后端服务是运行容器的 pod,它们也在端口 80 上运行。它们都没有被配置为可以从集群外部访问。后端服务通过指向 http://service_name 相互通信(不是 https),因为我使用此模板配置它们:
apiVersion: v1
kind: Service
metadata:
  name: service_name
spec:
  ports:
    - port: 80 # Exposed port
      targetPort: 80 # Container port
  selector:
     app: service_name

这一切都有效,但足够了吗?

前端/后端容器是否也应该使用带有通配符 https 证书的证书/443?这个配置应该在容器内还是在服务的配置上完成?

最佳答案

我现在已经做了很多调查,这就是我的结论。

我所有的 EKS EC2 实例都在私有(private)子网上运行,这意味着它们无法从外部访问。是的,默认情况下 Kubernetes 不会加密 pod 之间的流量,这意味着获得了我的 VPC 访问权限的黑客(可能是流氓 AWS 工程师、设法物理访问 AWS 数据中心的人、设法访问我的 AWS 账户的人.. .) 将能够嗅探网络流量。同时,我觉得在这种情况下,黑客将可以访问更多!如果他可以访问我的 AWS 账户,他可以自己下载 https 证书。如果他设法走进(高安全性)AWS 数据中心并找到我的服务器 - 最好将他必须承担的风险与您的数据值(value)进行比较。如果您的数据包括信用卡/付款或敏感的个人数据(出生日期、健康详情...),则 SSL 加密是必须的。
无论如何,为了保护 pod 流量,有 2 个选项。

  • 更新所有 pod 源代码并在那里添加证书。如果您运行许多 pod 并且证书每隔一年到期,则需要大量维护。
  • 添加一个额外的“网络层”,如 https://istio.io/ .这将增加您的集群的复杂性,对于 EKS,AWS 的支持将是“尽力而为”。理想情况下,您会为 Istio 支持付费。

  • 对于负载均衡器,我决定向集群添加一个入口(Ngnix、Traefik...)并使用 https 进行设置。这一点至关重要,因为 ELB 位于公共(public)子网上。

    关于security - HTTPS 证书和 Kubernetes (EKS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53169659/

    相关文章:

    wcf - 如何使用 MutualSSL 设置将服务引用配置为指向 Https?

    docker - 无法在主节点上运行kubernetes仪表板

    windows - 是否有生成 SDDL(安全描述符定义语言)字符串的工具?

    php - 如何限制用户打开现有的php页面?

    Java小程序套接字服务器权限

    apache - .htaccess - 将 http 重定向到 https 排除特定的 url

    ios - SecRandomCopyBytes 有多好?

    ruby - 使用 Chef 捕获 HTTP 调用响应

    amazon-web-services - Grafana 中的 Kubernetes Pod 和节点没有数据点 - Prometheus Dashboard

    kubernetes - Kubernetes +蝗虫(负载测试)