如何添加或引入kubernetes普通用户?

时间:2018-04-25 02:17:41

标签: kubernetes

我在offical doc上看到了它,但我不知道如何add or introduce normal user外部kubernetes群集。我在kubernetes中搜索了很多关于普通用户的信息但没什么用处。

我知道它与serviceaccount不同,我们无法通过Kubernetes API添加普通用户。

有关如何向kubernetes群集添加或引入普通用户以及普通用户是什么的任何想法?

1 个答案:

答案 0 :(得分:2)

Comparing Kubernetes Authentication Methods

查看“Etienne Dilocker

可能的解决方案是x509 client certs

  

优点

     

操作Kubernetes集群并发布用户证书是分离的       比基本身份验证更安全

     

缺点

     

x509证书往往具有很长的使用寿命(数月或数年)。因此,撤销用户访问几乎是不可能的。如果我们选择发布短期证书,则用户体验会下降,因为替换证书需要付出一些努力。

但Etienne建议OpenID

  

如果我们可以拥有由第三方发布的短期证书或令牌,那就不是很好了,所以没有与K8s集群的运营商联系。   同时所有这些都应该与现有的企业基础架构集成,例如LDAP或Active Directory

     

这是OpenID Connect (OIDC)的用武之地。

     

对于我的示例,我使用Keycloak作为令牌发行者。 Keycloak既是令牌发行者又是开箱即用的身份提供者,使用Docker很容易实现。

使用RBAC进行这种认证不是直截了当的,但可能 请参阅“issue 118; Security, auth and logging in

  

使用1.3我在仪表板中使用SSO,可以使用反向代理和OIDC / OAuth2。我不会创建一个显式登录屏幕,从RBAC模型和已经支持的Auth模型中退回。有一些东西可以说明登录用户是谁。

请注意,从1.3开始,可能会有更简单的解决方案。

同一主题包括:

  

我有一个原型图像可以完成我认为你正在寻找的东西:https://hub.docker.com/r/mlbiam/openunison-k8s-dashboard/

     

我删除了用户配置的所有要求,并将其删除为:

     
      
  • 反向代理
  •   
  • 与openid connect集成
  •   
  • 显示用户的访问令牌
  •   
  • 简单链接页面
  •   

includes the role binding

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name: admin-role
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]
  nonResourceURLs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name: admin-binding
subjects:
- kind: Group
  name: admin
- kind: ServiceAccount
  name: default
  namespace: kube-system
- kind: ServiceAccount
  name: openunison
  namespace: default
roleRef:
  kind: ClusterRole
  name: admin-role

同样,这是针对仪表板RBAC访问的,并且已经使用PR 2206 Add log in mechanism (to dashboard)进行了改进。

它仍然可以为您提供一些线索,以便将常规用户链接到kubernetes RBAC。