是否存在用于在Kubernetes集群上提供OAUTH2安全的最佳实践标准?

时间:2018-11-01 08:55:43

标签: oauth-2.0 kubernetes

我开始尝试对Kubernetes集群进行Oauth2授权。

我使用UAA找到了一个好的Oauth2身份提供者

我的初衷是将其部署到Kubernetes集群中,然后允许它在该集群上提供身份验证。这将提供托管在云中的单一登录解决方案,并使该解决方案能够管理Kubernetes访问以及对在群集上运行的应用程序的访问。

但是,当仔细考虑该解决方案时,似乎在某些极端情况下这种配置可能会造成灾难性的后果。例如,如果我的集群停止了,那么我认为我将无法重启该集群,因为Oauth2提供程序将无法运行,因此无法通过身份验证执行任何重启操作。

  • 还有其他人遇到过这个难题吗?
  • 这是真正的风险吗?
  • 是否存在“标准”方法来规避此问题?

非常感谢您抽出宝贵时间阅读本文!

2 个答案:

答案 0 :(得分:1)

Kubernetes支持多种身份验证(参考:https://kubernetes.io/docs/reference/access-authn-authz/authentication/)。

您可以启用多个。您可以使用任何一个(如果它们已正确启用和配置)登录kubernetes集群。

根据kubernetes文档:启用多个身份验证器模块时,第一个成功验证请求短路评估的模块。 API服务器不保证订单身份验证器将在其中运行。

因此,如果您启用多重身份验证,我认为您还可以。我正在使用kubernetes集群。在该群集中,启用了身份验证和使用webhook token authenticationguard。并且此guard在该kubernetes集群中运行。

答案 1 :(得分:1)

UAA的使用包括两个过程(身份验证和授权),其中两个过程允许在集群中执行某些操作。它们通过kubectl命令行工具使用。

一个人可以使用 2个现有的授权模块ABACRBAC)。 Here,您可以发现这两个选项的并排比较,作者选择了RBAC模式,因为它“不需要每次更新策略文件时都重新启动API服务器”。

如果我正确理解您的问题,this article可能会有所帮助。