Tesla Attack 警钟 - 安全访问 Kubernetes dashboard

查看原文

Tesla 被爆出巨大的安全隐患:其 Kubernetes Dashboard 暴露在公网上,AWS Key & Token 都可以被人看到。这篇文章讲述了如何给 Kubernetes Dashboard 配置密码,配置域名,配置 HTTPS。

  • 裸跑 dashboard 是很危险的。整个集群的机器都可以被操控,信息可以被窃取。
  • 你必须在生产环境上打开 RBAC,这样集群节点间的通信才能被加密。一些工具启动集群后默认是没有打开它的,需要注意确认。
  • 最简单访问 dashboard 的方式是运行:kubectl proxy, 它启动一个类似 dev webserver 一样的东西。
  • 错误的做法:直接给 Dashboard root 权限(虽然基于 ServiceAccount 的授权不会抱错 PermissionError,但是敲级危险的!
  • 推荐的做法:per-user credentials,可以给浏览器安装上插件发请求时自动增加上 Authorization Token.
  • 错误的做法:直接给 Dashboard 套上 load balancer。这相当于直接公开了。
  • 推荐的做法:给 Dashboard 套上一个 authenticating proxy(本文的做法),或者暴露 NodePort(这样能访问机器的人才能访问服务)
  • authenticating proxy 是让服务放在 proxy 后面,只有授权的用户才能访问。作者的思路是:用 oauth_proxy 把流量导到 GitHub,然后 GitHub 授权结束后回到 Kubernetes Dashboard。(这里可以替换成自家的授权服务),使用 Contour with Let’s Encrypt 签证书,使用 JetStack 作为 cert-manager,然后化身 YAML 工程师,写一堆配置把这些服务串起来。

衍生思考:力量越大,责任越大。这样管理集群,管理密钥的系统,安全尤为重要。