【问题标题】:Is there a Best Practice standard for providing OAUTH2 security over a Kubernetes cluster?是否有在 Kubernetes 集群上提供 OAUTH2 安全性的最佳实践标准?
【发布时间】:2019-03-04 23:27:23
【问题描述】:

我开始试验 Kubernetes 集群的 Oauth2 授权。

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

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

但是,在考虑这个解决方案时,似乎存在一些边缘情况,这种配置可能是灾难性的。例如,如果我的集群停止,那么我认为我将无法重新启动该集群,因为 Oauth2 提供程序将不会运行,因此我无法通过身份验证来执行任何重新启动操作。

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

非常感谢您花时间阅读本文!

【问题讨论】:

  • 我认为您的意思是管理集群(包括使用 kubectl 命令行客户端)和访问其 API。在这方面,请参阅 thenewstack.io/kubernetes-single-sign-one-less-identity,因为它解释了一系列选项。对于部署在集群中的应用程序,您可能希望在集群中部署身份提供程序并让应用程序使用它。自然有一系列不同的身份提供者和身份验证方法。

标签: oauth-2.0 kubernetes


【解决方案1】:

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

您可以启用多个。您可以使用其中任何一个登录 Kubernetes 集群(如果它们启用并正确配置)。

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

所以,如果您启用多重身份验证,我认为您没问题。我正在使用 Kubernetes 集群。在该集群中,启用了使用guard 的证书身份验证和webhook token authentication。而这个 guard 正在那个 kubernetes 集群中运行。

【讨论】:

    【解决方案2】:

    UAA 的使用包括两个 2 过程 - 身份验证和授权 - 后者允许在集群内执行某些操作。它们通过 kubectl 命令行工具使用。

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 2019-01-25
      • 2011-03-17
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多